为什么第一个值在循环覆盖

5视图(30天)
出于某种原因,当fi = = 1, NPV_list(1, 1)插入正确,但当fi = 2的值被覆盖,我不理解…在所有。这是代码:
清晰的所有;
clc;
Fi = [0, 0.8:0.05:1];
T = 160;
NPV_list =南(长度(Fi), 1);
fi = 1:长度(fi);
fi
F = Fi (Fi);
负载([“res_us_v15_”num2str (T),“_”num2str (100 * F)))
NPV_list (fi, 1) = us.sim.NPV_Pb_Wlth_avg
clearvars刚NPV_list Fi T;
结束
有人能解释一下这个吗?这是前2迭代的输出:
fi =
1
NPV_list =
9.9570
fi =
2
NPV_list =
9.8664

接受的答案

每•艾萨克森
每•艾萨克森 2012年12月8日
编辑:每•艾萨克森 2012年12月8日
不,我无法解释。然而,什么是在你加载的文件?对我来说clearvars看起来可怕。
我的函数,cssm作品:
> > cssm ()
ans =
101 102 103 104 105 106
在哪里
函数NPV_list = cssm ()
Fi = [0, 0.8:0.05:1];
T = 160;
我们= (101:109);
NPV_list =南(1、长度(Fi));
fi = 1:长度(fi);
fi;
F = Fi (Fi);
我们NPV_list (fi) = (fi);
clearvars我们刚NPV_list Fi T;
结束
结束
医生说:
S =负载(文件名、变量);
试一试
S =加载(文件名,“我们”);
和删除clearvars。
最后,检查是否有一个变量加载文件,解释了你看到的行为。

更多的答案(2)

理查德。
理查德。 2012年12月8日
编辑:理查德。 2012年12月8日
试一试
Fi = [0, 0.8:0.05:1];
T = 160;
NPV_list =南(长度(Fi), 1);
fi = 1:长度(fi);
F = Fi (Fi);
负载([“res_us_v15_”num2str (T),“_”num2str (100 * F)))
NPV_list (fi, 1) = us.sim.NPV_Pb_Wlth_avg
结束
clearvars刚NPV_list Fi T;
我不清楚之前的变量循环。它可能是通过清除Fi和T,它不能读for循环2因此不输出。

Sargondjani
Sargondjani 2012年12月9日
谢谢大家……通常我从未保存迭代变量如fi,但在这种情况下,文件包含了“fi = 1”。非常愚蠢的

类别

找到更多的在循环和条件语句帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!