数学建模社区-数学中国

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

作者: yazjy    时间: 2012-9-4 21:53
标题: <求助>新手自学问题
自学,一本教程上的一个例子:
! {& x/ s6 c7 a5 Z+ Z. j编程输入范德蒙德型矩阵。
6 G  B# z% ?7 D( |0 Z在MATLAB命令窗口输入以下代码:          %%实际操作的时候,是输到M文件里面的
; X7 x2 k1 Z* Y) V' i; {  c) B& zclear all;8 `0 I/ m% H$ D! D8 l
x=[-1,0,1,2,3]';
7 Z0 p$ r7 Y0 D5 R: M% Ffor i=1:54 D& B0 W( e! P4 M0 ~+ i
    for j=1:5
7 ~0 d/ ?2 n5 G) G' l# a& t5 @         A(i,j)=x(i).^(j-1);# F0 ]! y/ a4 T5 [* @# J
    end
/ L7 c. Z& M" f$ C4 T2 Nend3 q6 C2 L% V4 Z- z  y
A$ r5 Z" F# Z; Q4 A. a
运行后显示正确答案。
; K0 r$ ]( P5 R. d+ U光是这样不错,但是书上又来了句:: \5 A8 U( o2 @8 `5 }8 |
“在实际MATLAB编程中,采用循环语句会降低其执行速度,应尽可能多地利用向量来设计程序。如上述程序可改写成以下更简明的形势:”4 R" T. B; G3 K2 w; G2 z% o- X* S
1 b2 c4 R0 U6 U8 O, H
然后书上贴了一段代码:
# W/ h: X2 E, Nclear all;7 [* F4 T6 a# a# t' d! m/ \& e: ^
x=[-1,0,1,2,3]';
. ^: [2 j& K6 i; hfor j=1:55 b0 Z/ p% s5 Z' x* G
    A(i,j)=x(i).^(j-1);! l# X# `& M4 J) C  j& _  B) |) U' v; s1 m
end8 u# K* _) a6 f2 `$ [$ o- }' C- Y
A' K. B" `( `! q' Q* c
书上对这段的解释是:; r6 s$ J5 T% M! \9 c0 f1 o
“由于MATLAB支持向量运算,上述问题可以改用单循环来处理。”3 o- c. r6 i, b3 o5 I' H
8 v! j) B+ [/ Q6 E; s$ w. ?
但是后一段我运行后出错,显示第4行出错,报错:
2 y6 ^7 A- z. l2 {Subscript indices must either be real positive integers or logicals.
' m  P4 u' r- `4 E是书上错了吗?如果是,那么,按照书上的那个意思,程序应该怎么改?
" M2 W3 X( [5 V0 H1 y" R( x谢谢!
作者: yazjy    时间: 2012-9-4 21:54
后一段第4行写错,书上的是:A(i,j)=x(i)^(j-1);




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