yazjy 发表于 2012-9-4 21:53

<求助>新手自学问题

自学,一本教程上的一个例子:
编程输入范德蒙德型矩阵。
在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.
是书上错了吗?如果是,那么,按照书上的那个意思,程序应该怎么改?
谢谢!

yazjy 发表于 2012-9-4 21:54

后一段第4行写错,书上的是:A(i,j)=x(i)^(j-1);
页: [1]
查看完整版本: <求助>新手自学问题