【发布时间】:2015-07-08 15:20:04
【问题描述】:
我一直在尝试将 for 循环的输出写入向量。问题是,一旦它通过方程,它就会停止并吐出这个错误:“下标索引必须是真正的正数 整数或逻辑。”
我查看了这个错误是什么,并检查了我的代码。没有输出负整数,也没有任何零。 for-loop、function 和 fzero 命令都很好,如果我注释掉 MW4p(y4,:) = MW4 我会在命令窗口中得到所有答案。我只是不能将它们放入数组中。
for y4 = linspace(1.4,1.67,100)
x0 = 12; %Starting Point
fun = @(MW4) (y4.*MW1.*T3)./(y1.*MW4.*T2) - ...
(((1+((y4+1)./(y4-1)).*p5p2).*((2.*y4)./(y4-1))) ./ ((1+...
((y1+1)./(y1-1)).*p5p2).*((2.*y1)./(y1-1)))) .* (((2./(y1-1))...
./ (2./(y4-1))).^2);
MW4 = fzero(fun,x0)
MW4p(y4,:) = MW4
end
在哪里
y1 = 1.67;
MW1 = 39.55;
T3 = 250; %k
T2 = 700; %k
p5p2 = 2.307; %Determined from T5 desired
MW4p = ones(1,100);
在较早的尝试中,我尝试过 MW4p(y4) = MW4 出现以下错误:“尝试访问 MW4p(1.4);索引必须是
正整数或逻辑。”所以我添加了一个冒号。将此命令放在 for 循环之外只是让它访问循环的最后一个值并返回相同的错误。
【问题讨论】:
-
y4必须是整数,而不是双精度数。
标签: matlab for-loop iteration output