数学建模社区-数学中国

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

作者: yazjy    时间: 2012-9-4 21:53
标题: <求助>新手自学问题
自学,一本教程上的一个例子:
& H) [6 |  b# _' }6 R编程输入范德蒙德型矩阵。8 ^% ?2 E* f; y
在MATLAB命令窗口输入以下代码:          %%实际操作的时候,是输到M文件里面的
, d- H2 P  I# P% n( f  Uclear all;
* ~2 W1 j% c$ o; D) gx=[-1,0,1,2,3]';
  w3 H' W9 p  A8 afor i=1:5
2 s' g5 H; p* Z! Z- ^    for j=1:5# d* J/ m, C3 L8 {( A
         A(i,j)=x(i).^(j-1);
- l( ]5 L% |  l' I" G$ x2 d- Q    end
7 C& c) v% H* M: S, F& S  K5 jend
1 H4 m9 t1 w  X# w: [A0 Q; S" ~3 A: [8 r) u6 f
运行后显示正确答案。' P4 ?$ ]8 l& K- S4 G
光是这样不错,但是书上又来了句:$ h. Q2 R1 A' i- v2 T  ~
“在实际MATLAB编程中,采用循环语句会降低其执行速度,应尽可能多地利用向量来设计程序。如上述程序可改写成以下更简明的形势:”
  S9 N' D; T! H% t4 |$ G6 Z+ H* I+ }% r( w5 L0 T/ E2 Q6 Z/ P4 W
然后书上贴了一段代码:
2 B: }) y6 m( \+ Wclear all;1 E6 j. Q$ P% T* j9 U, ^" T
x=[-1,0,1,2,3]';
' ?2 q$ ^2 v' k& Y% qfor j=1:52 d: K  K7 C7 \) B" Q$ W
    A(i,j)=x(i).^(j-1);+ P2 M5 {% [. V; B
end9 f/ b# @$ s2 W
A
/ d+ [5 G8 e6 h/ ~- g1 A- j书上对这段的解释是:9 H) e1 m; T. m/ b
“由于MATLAB支持向量运算,上述问题可以改用单循环来处理。”8 h4 j8 y% z, P9 Z# a; o

' b& t5 Z2 G3 j  `但是后一段我运行后出错,显示第4行出错,报错:$ E' W6 u1 u8 V+ N
Subscript indices must either be real positive integers or logicals.$ ]0 _2 b% b+ b6 z" p
是书上错了吗?如果是,那么,按照书上的那个意思,程序应该怎么改?
% f4 s  ^; B! b: Q, c( v# E谢谢!
作者: yazjy    时间: 2012-9-4 21:54
后一段第4行写错,书上的是:A(i,j)=x(i)^(j-1);




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