Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试在Matlab中绘制图形时出错_Matlab_Graph_Error Handling - Fatal编程技术网

尝试在Matlab中绘制图形时出错

尝试在Matlab中绘制图形时出错,matlab,graph,error-handling,Matlab,Graph,Error Handling,当我试图执行这段代码时,我采用了“数组索引必须是正整数或逻辑值。”错误 v(1)=0; g=9.81; m=68.1; c=12.5; t=0:0.5:8; for i=1:0.5:8 v(i+1)=v(i)+([g-((c/m)*v(i))].*(i+1-i)); end plot(t,v); xlabel('Time (s)'); ylabel('Velocity (m/s)'); 当MATLAB遇到v(1.5),其中v是一个向量(一个数组)时,我们希望它做什么?正如您刚刚发现的,M

当我试图执行这段代码时,我采用了“数组索引必须是正整数或逻辑值。”错误

v(1)=0;
g=9.81;
m=68.1;
c=12.5;
t=0:0.5:8;
for i=1:0.5:8
   v(i+1)=v(i)+([g-((c/m)*v(i))].*(i+1-i));
end
plot(t,v);
xlabel('Time (s)');
ylabel('Velocity (m/s)');

当MATLAB遇到
v(1.5)
,其中
v
是一个向量(一个数组)时,我们希望它做什么?正如您刚刚发现的,MATLAB要求数组索引始终为整数,从1开始(或逻辑数组,但这里不是这种情况),否则会抛出错误。你可以把这些索引看作是计算机内存中的离散位置,或者是一个巨大的梳妆台中的小抽屉(梳妆台如此巨大,以至于它有数百万个,不,数十亿个抽屉)。试图在两个抽屉之间的某处存放物品是没有任何意义的。如果有人命令你在现实生活中这样做,你会如何反应?好吧,现在你像MATLAB一样思考。因此,您应该能够意识到您的代码需要修改,以使其如下所示:

v(1)=0;
%[...]
t=0:0.5:8;
for i=2:17
  v(i)=v(i-1)+([g-((c/m)*v(i-1))].*( 0.5*(i-1)+1-0.5*(i-1) ));
  %was the `.*(i+1-i)' (i.e. the multiplicative identity) in the original code a typo?
end
注意,与原始程序不同,上面的代码还计算与
t==0.5
相关的
v