In an assignment A(I) = B, the number of elements in B and I must be the same.
1 次查看(过去 30 天)
显示 更早的评论
I have a problem with my current Matlab code
if true
% code
end
if true
Nt=T/dt+1;
t=0:dt:T;
phi=zeros(Nt,1);
b=zeros(Nt,1);
f=zeros(Nt,1);
p(1)=3;
b(1)=10;
f(1)=l;
for i=1:Nt-1
b(i)=(12*pi(i))/(2*r)^2;
f(i)=l*p(i)^(3/2)/(2*r^2*((p(i)-1)^(1/2)));
p(i+1)=p(i)+dt*(p(i)-p(i)*((1-f/(sqrt(b*p(i))*x))*sinh(sqrt(b*p(i))*x)));
end
For p(i+1) Matlab keeps saying "In an assignment A(I) = B, the number of elements in B and I must be the same." Any ideas?
4 个评论
Adam
2015-7-1
You can use syntax like:
p(i+1,:) = ...
to enter values into a 2d array whose second dimension can be 601, but this only works if every set of results being entered into the array has size 601 which is not the case because you assign:
p(1) = 3;
at the start and I don't know if your results are the same size every time round the loop either.
采纳的回答
Azzi Abdelmalek
2015-7-1
Nt=T/dt+1;
t=0:dt:T;
phi=zeros(Nt,1);
b=zeros(Nt,1);
f=zeros(Nt,1);
p(1)=3;
b(1)=10;
f(1)=l;
for i=1:Nt-1
b(i)=(12*p(i))/(2*r)^2;
f(i)=l*p(i)^(3/2)/(2*r^2*((p(i)-1)^(1/2)));
p(i+1)=p(i)+dt*(p(i)-p(i)*((1-f(i)/(sqrt(b*p(i))*x))*sinh(sqrt(b*p(i))*x)));
end
5 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!