我遇到了一个小问题,我已经关注了很多年,但看不到如何解决!我有一个嵌套的 for 循环,计算增量距离的值,该循环会增加时间。代码为:
h = 25;
for t = 0:0.5:2
t
eta = a*cos(k*x-w*t)
i = 1;
for z = eta:-h
u = w * a * ((cosh(k * (h + z)))/sinh(k*h))*sin(w * t);
du = (a * w * w) * ((cosh(k * (h + z)))/sinh(k * h)) * cos(w * t);
F(i) = (0.5 * rho * Cd * D * u * abs(u)) + rho * A * Cm * du
i++
plot(F,z)
end
%title('Forces')
%plot(F,z), hold on
%drawnow;
%pause(1/20)
end
好的,有几个问题(我已经经历了很多问题,但目前就是这样):1)它甚至没有进入第二个for循环。我正在尝试从在某个 t 处为 eta 计算的值递增 z,并计算每个 z 的 F,然后移回第一个 for 循环以增加 t。我没有看到问题出在哪里?2)我想将z和F值保存到一个数组中,以便我可以为每个t绘制(稍后进行动画处理)。这里也有问题...
我真的很感激任何建议,或者如果你能找到任何可以帮助我的东西!
提前致谢
第一个问题是你没有定义所有的变量。a"、"k"、"x"、"w"未知)。其次,您必须将语法从i++
更改为i = i + 1;
您还必须递减第二个 for 循环中的z
。您必须进行这些更改,您的代码将运行。
为了在 aray 中保存值,您应该使用以下语法:
YourArray = [YourArray, Value(i)]
在你的 for 循环内。在循环之前YourArray = [];
初始化数组。