错误:在赋值A(I)= B中,B和I中的元素数必须相同

时间:2014-12-14 09:28:13

标签: matlab

当我运行以下代码时,我收到错误。与特定行对应的错误标记如下。

global l m 
l=2;
m=4;
n=1000000;
dt=0.0001;
x=zeros(n,1);
y=zeros(n,1);
c=zeros(n,1);
t=zeros(n,1);
x(1)=1; 
y(1)=3;
c(1)=1;
t(1)=0.0;
for ii=1:1000000
    t(ii+1)=t(ii)+dt;
    x(ii+1)=x(ii)+dt*y(ii);
    y(ii+1)=y(ii)+dt*c(ii+1);
    c(ii+1)=c(ii)+dt*((1-(l/y))*c(ii) + m);
end
plot(t,x,'b');
%plot(t,y,'g');
%plot(t,c,'r');
%plot3(x,y,z);
%legend('x','y','z');
%hold on;
grid on;
%axis([0 10 0 10 0 10]);
%end

相应的错误是

Error in ==> at 18
c(ii+1)=c(ii)+dt*((1-(l/y))*c(ii) + m);

In an assignment  A(I) = B, the number of elements in B and
 I must be the same.

请帮助。提前谢谢。

2 个答案:

答案 0 :(得分:0)

你的

l/y
第18行中的

应为

l/y(ii)

我相信。

答案 1 :(得分:0)

y是一个向量,因此您尝试将带有1000,000个条目的向量函数添加到c向量的单个条目中。你可能想添加一个条目吗?