【发布时间】:2015-04-09 10:22:40
【问题描述】:
我遇到了一个小问题,我多年来一直在寻找,但不知道如何解决!我有一个嵌套的 for 循环,用于计算增加时间的 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 绘制(稍后动画)。这里也有问题...
非常感谢任何建议,或者如果您能找到任何可以帮助我解决此问题的方法!
提前致谢
【问题讨论】:
-
你能让它在 MATLAB 中运行吗?
i++未在 MATLAB 语法中定义。除此之外,在您继续在操作中使用它之前,您永远不会定义a。这是你在哪个编辑器上写的? MATLAB 编辑器本身会告诉你所有这些...... -
在第二个
for循环中检查eta的值是否小于-25,为什么t会挂在那里? -
对不起,这确实有效,我删除了所有变量声明。我正在使用八度,所以 i++ 似乎确实在八度中工作
-
no eta 值保持在 -1 到 1 的范围内..
标签: arrays matlab octave nested-loops