自学,一本教程上的一个例子:
编程输入范德蒙德型矩阵。
在MATLAB命令窗口输入以下代码: %%实际操作的时候,是输到M文件里面的
clear all;
x=[-1,0,1,2,3]';
for i=1:5
for j=1:5
A(i,j)=x(i).^(j-1);
end
end
A
运行后显示正确答案。
光是这样不错,但是书上又来了句:
“在实际MATLAB编程中,采用循环语句会降低其执行速度,应尽可能多地利用向量来设计程序。如上述程序可改写成以下更简明的形势:”
然后书上贴了一段代码:
clear all;
x=[-1,0,1,2,3]';
for j=1:5
A(i,j)=x(i).^(j-1);
end
A
书上对这段的解释是:
“由于MATLAB支持向量运算,上述问题可以改用单循环来处理。”
但是后一段我运行后出错,显示第4行出错,报错:
Subscript indices must either be real positive integers or logicals.
是书上错了吗?如果是,那么,按照书上的那个意思,程序应该怎么改?
个人认为,是因为没有定义i,循环体内部就不应该出现i
那要怎么样才能不出现i呢?
谢谢!