MATLAB(索引必须是正整数或逻辑。)

时间:2017-10-22 13:38:45

标签: matlab

我无法在这里解决问题! 我将V(0)= 0更改为V(1)= 0然后'索引超出矩阵维度。'发生

i=0; 
m=70;
C=10;
g=9.81;
V(0)=0;
for t=0:0.25:50
   V(i+1)=V(i)+(g-(C*V(i))/m)*(t(i+1)-t(i));
   i=i+1;
end
plot(V(i),t(i))

2 个答案:

答案 0 :(得分:0)

阵列V是否在其他地方声明?看来你正试图访问它的第一个元素但是数组尚未初始化。 我不知道该数组的值是否必须计算或硬编码,因此请参阅https://www.mathworks.com/help/matlab/learn_matlab/matrices-and-arrays.html?requestedDomain=www.mathworks.com了解更多

答案 1 :(得分:0)

您的代码中存在一些错误:

  • 数组V0开始初始化,而在MatLab中,数组的索引从1开始
  • 由于上述原因您已初始化i=0,因此在循环的第一次迭代中,您尝试访问t(0)
  • plot函数称为plot(V(i),t(i)),您只会绘制一个点,而且,在for循环结束时递增i,使V(i)和{{1没有实际计算
  • 在循环中,如果t(i)是循环索引,则无法访问t(i+1),因为尚未对其进行评估

您可以按如下方式修改代码:

t

enter image description here

希望这有帮助,

Qapla'