数学建模社区-数学中国

标题: <求助>新手自学问题 [打印本页]

作者: yazjy    时间: 2012-9-4 21:53
标题: <求助>新手自学问题
自学,一本教程上的一个例子:9 @% c0 `$ O7 ^& G
编程输入范德蒙德型矩阵。
2 K" e# s& ^" h2 w在MATLAB命令窗口输入以下代码:          %%实际操作的时候,是输到M文件里面的
% y0 O% U* A( o8 x' z7 U! u9 Cclear all;# b- J  Q# |/ U" ]0 A( ~) |/ {
x=[-1,0,1,2,3]';
$ g* S8 z" `- ~4 A/ Sfor i=1:5
. w* u  k; z5 N% R3 G    for j=1:5
/ ~- r( Q9 c5 {3 h         A(i,j)=x(i).^(j-1);
5 `/ f4 D3 ~' y! L    end0 ?9 T' I, i; ]
end
, a, a* T) i/ G* S! c* R4 nA$ f( B* U4 j9 g" Z
运行后显示正确答案。7 s7 X3 g) _4 T8 T  n2 B7 ~
光是这样不错,但是书上又来了句:- A: V; r" {' ~4 x8 p$ R$ q, k
“在实际MATLAB编程中,采用循环语句会降低其执行速度,应尽可能多地利用向量来设计程序。如上述程序可改写成以下更简明的形势:”
: _3 V) |4 _, a$ x
+ ]. b# ?6 r2 j( r) m$ b: }然后书上贴了一段代码:/ ]2 C0 `/ M% @8 d* a1 Q
clear all;
7 j, q. K% f9 I! i% |x=[-1,0,1,2,3]';) V* ^0 P, |2 y
for j=1:5
+ e% a; `* k/ w/ q( i5 J    A(i,j)=x(i).^(j-1);
$ L7 K& \8 F& E: _* Z$ ^" oend
) M& W3 m' l  M0 sA1 T3 @. X; l3 U4 v$ ?1 U
书上对这段的解释是:
1 e8 P) }: c+ U( A“由于MATLAB支持向量运算,上述问题可以改用单循环来处理。”: P$ |2 `8 ^. X8 B- ?" J

) w& D; L& _, J- j1 p但是后一段我运行后出错,显示第4行出错,报错:
2 L+ J) F* x# C# f6 aSubscript indices must either be real positive integers or logicals.' v# ~, x# e" V& }
是书上错了吗?如果是,那么,按照书上的那个意思,程序应该怎么改?
6 ?! d( f' g  N; W. z0 p2 x谢谢!
作者: yazjy    时间: 2012-9-4 21:54
后一段第4行写错,书上的是:A(i,j)=x(i)^(j-1);




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5