数学建模社区-数学中国

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

作者: yazjy    时间: 2012-9-4 21:53
标题: <求助>新手自学问题
自学,一本教程上的一个例子:) U) a8 r6 R$ }% V1 {
编程输入范德蒙德型矩阵。* ~+ s$ q' V' Q1 V2 X: x
在MATLAB命令窗口输入以下代码:          %%实际操作的时候,是输到M文件里面的
. |+ q* v& j9 m# yclear all;
- R3 a8 O7 n: tx=[-1,0,1,2,3]';" E# r; I3 x8 w4 }2 f, S. _
for i=1:5
" S" b* e- ^8 x7 l, a! I; d    for j=1:5
/ Z& m( `7 Z/ b7 E; g3 J         A(i,j)=x(i).^(j-1);3 I$ S3 N5 m5 `) L! e
    end" w: m: a+ ]# B7 w/ {2 p
end
- H! m/ b  }9 Q( l3 y1 _A
; p3 d5 _1 R( H! ~1 p4 t运行后显示正确答案。
" @* z. u8 Q- f, U$ @光是这样不错,但是书上又来了句:
5 f- h* g; a* c$ d, D8 c“在实际MATLAB编程中,采用循环语句会降低其执行速度,应尽可能多地利用向量来设计程序。如上述程序可改写成以下更简明的形势:”
* {' ?9 _& R# b! d5 S2 G" E
8 f" B8 ^" d& s1 o+ y1 R8 R然后书上贴了一段代码:
5 v9 g$ H7 |/ f6 fclear all;
4 H# `1 F; C9 G5 }$ q( o/ `/ X: Rx=[-1,0,1,2,3]';2 h7 i  ]% {" S" V  G
for j=1:5
6 I% |( O# N8 ^$ r    A(i,j)=x(i).^(j-1);6 [9 n' W+ Q% }1 j: Y9 n7 a. _
end- ~1 `( z' O1 Q
A
" i) ^! A# ]1 P( N1 r0 ]书上对这段的解释是:) T, x( d. W# Q/ e  x
“由于MATLAB支持向量运算,上述问题可以改用单循环来处理。”
1 G3 v3 t/ S2 q5 B, L7 Y" s2 j5 t+ a1 U2 j4 x/ `7 b* Z
但是后一段我运行后出错,显示第4行出错,报错:  W3 |3 |% J$ H$ z$ E
Subscript indices must either be real positive integers or logicals.! Y9 h/ L+ h. k! J
是书上错了吗?如果是,那么,按照书上的那个意思,程序应该怎么改?
. w) x# N+ e" ^- c谢谢!
作者: yazjy    时间: 2012-9-4 21:54
后一段第4行写错,书上的是:A(i,j)=x(i)^(j-1);




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