matlab 数组赋值问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 10:18:37
各位大侠,我新手,给数列d赋值并输出,每次运行显示d仍然全部为0,出现如下错误:??? Attempted to access x(101); index out of bounds because numel(x)=0.
哪位能帮忙解答一下,万分感谢!!!

小弟钱不多了,奖励10财富,大家帮帮忙!

程序如下:

t=0:50;
d=zeros(1,51)
for i=1:51
n=0:t(i)/100:t(i);
x=50*n;
d(i)=x(101);%我怀疑d不能这样赋值,但不知道原因,望解答问题在哪
end
for j=1:51
fprintf('d(%f)=%f.\n',i,d(i));
end
d(i)=x(101) %我是想把x数组最后一个值,赋给d(i)

i=1时,你x只是一个数,不是数组,当然不会有x(101)了。你没看出来吗?建议把t初值改下。

当i=1时n是空矩阵,从而x也是空的
所以程序会说矩阵下标越界,所以i要从2开始,对于第一个d你可以不动
你要是想要x最后一个数的话用x(end)
还有输出时你的变量是j你用成了i
正确程序如下
t=0:50;
d=zeros(1,51);
for i=2:51
n=0:t(i)/100:t(i);
x=50.*n;
d(i)=x(end);%我怀疑d不能这样赋值,但不知道原因,望解答问题在哪
end
for j=1:51
fprintf('d(%f)=%f.\n',j,d(j));
end