下面程序size函数的错误(matlab)

问题描述:

下面程序size函数的错误(matlab)
function [tvals,yvals] = code2(t0,tf,dt,y0)
tvals=(t0:dt:tf);
n=tf/dt;
[t,y]=size(n);
for i=1:n
y(i+1)=y(i)+2*dt*y(i)/t(i)+2*t(i)^3*dt-3*t(i)^2*dt;
end
hold on
yvals=tvals.^4-3*tvals.^3+tvals.^2*(t0^2-3*t0-y0/(t0^2));
legend('Numerical solution','Analytical solution');
title('IVP of question 2')
xlabel('t')
ylabel('y')
1个回答 分类:综合 2014-11-13

问题解答:

我来补答
size函数是用来求一个数组的大小的.比如a是一个数,那么size(a)=[1,1],若A是一个2*3的矩阵,那么size(A)=[2,3];
你的代码中n在语句“for i=1:n”中出现了,因此n=df/dt只可能是一个数,size(n)就是[1,1],那么你的t,y就都赋值成了一个数,t(1)=1,y(1)=1.所以不明白你写那些有什么用处.直接给t(1),y(1)赋值1,1不就好了么.如果对size的用法还有疑问,建议你help size查看
 
 
展开全文阅读
剩余:2000