Why does the first value in loop get overwritten

1 Ansicht (letzte 30 Tage)
Sargondjani
Sargondjani am 8 Dez. 2012
For some reason when fi == 1, NPV_list(1,1) is inserted correctly, but when fi=2 the value gets overwritten, which i dont understand... at all. This is the code:
clear all;
clc;
Fi = [0,0.8:0.05:1];
T = 160;
NPV_list = NaN(length(Fi),1);
for fi = 1:length(Fi);
fi
F = Fi(fi);
load (['res_us_v15_',num2str(T),'_',num2str(100*F)])
NPV_list(fi,1) = us.sim.NPV_Pb_Wlth_avg
clearvars -except NPV_list Fi T;
end
Can someone explain this? This is the output for first 2 iterations:
fi =
1
NPV_list =
9.9570
NaN
NaN
NaN
NaN
NaN
fi =
2
NPV_list =
9.8664
NaN
NaN
NaN
NaN
NaN

Akzeptierte Antwort

per isakson
per isakson am 8 Dez. 2012
Bearbeitet: per isakson am 8 Dez. 2012
No, I cannot explain. However, what else is in the files you load? The clearvars looks scary to me.
My function, cssm, works:
>> cssm()
ans =
101 102 103 104 105 106
where
function NPV_list = cssm()
Fi = [0,0.8:0.05:1];
T = 160;
us = [ 101 : 109 ];
NPV_list = NaN(1,length(Fi));
for fi = 1:length(Fi);
fi;
F = Fi(fi);
NPV_list(1,fi) = us(fi);
clearvars -except NPV_list Fi T us;
end
end
.
Doc says:
S = load( filename, variables );
Try
S = load( filename, 'us' );
and remove clearvars.
Last, check whether there is a variable in the loaded file that explains the behavior you see.

Weitere Antworten (2)

Richard
Richard am 8 Dez. 2012
Bearbeitet: Richard am 8 Dez. 2012
Try
Fi = [0,0.8:0.05:1];
T = 160;
NPV_list = NaN(length(Fi),1);
for fi = 1:length(Fi);
F = Fi(fi);
load (['res_us_v15_',num2str(T),'_',num2str(100*F)])
NPV_list(fi,1) = us.sim.NPV_Pb_Wlth_avg
end
clearvars -except NPV_list Fi T;
I wouldn't clear the variables until after the loop. It might be the case that by clearing Fi and T, it cannot read it for loop 2 thus no output.

Sargondjani
Sargondjani am 9 Dez. 2012
Thanks guys... normally i never save iteration variables like 'fi' but in this case the files contained "fi = 1". very silly

Kategorien

Mehr zu Workspace Variables and MAT-Files finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by