数学建模社区-数学中国

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

作者: yazjy    时间: 2012-9-4 21:53
标题: <求助>新手自学问题
自学,一本教程上的一个例子:* ]9 H+ k2 E, f8 t' l$ _
编程输入范德蒙德型矩阵。4 _$ G4 f/ `* ~
在MATLAB命令窗口输入以下代码:          %%实际操作的时候,是输到M文件里面的
) c! }) ]+ e* Qclear all;
  {" q. M7 N6 P6 A: Mx=[-1,0,1,2,3]';
7 f) r: _# V( hfor i=1:5+ m1 ~, V: Y* t/ D, r' z9 q' c
    for j=1:5" P7 a! k9 {$ k7 O. P; ^
         A(i,j)=x(i).^(j-1);+ u9 s! O3 O$ U# x0 x/ m5 x3 p! x
    end
/ i! C2 y/ t3 V$ V! T" dend
6 \' Q% P7 V% L1 c/ J$ kA* T/ |- v3 D( M7 l
运行后显示正确答案。
+ g; x+ o- l, r+ s. c+ c光是这样不错,但是书上又来了句:' r" d2 C% @. U! X. g. Y
“在实际MATLAB编程中,采用循环语句会降低其执行速度,应尽可能多地利用向量来设计程序。如上述程序可改写成以下更简明的形势:”* E; d' A- X2 {& R" E
+ \& A% z; W5 o. h
然后书上贴了一段代码:% ^- G9 J; Q5 z# u5 X5 ~
clear all;
+ B0 t2 L# L; K9 p. F- Dx=[-1,0,1,2,3]';7 u6 ^5 `# p8 L2 S8 x2 v& Q
for j=1:5
9 ]+ ~9 Y$ V7 Q6 z( k) l    A(i,j)=x(i).^(j-1);
6 p- v! V) I. S& h# x. Tend' J' F& r6 m5 r& \5 s
A/ A8 H0 T9 I/ J
书上对这段的解释是:0 N2 Q9 k; ?8 _& R6 j
“由于MATLAB支持向量运算,上述问题可以改用单循环来处理。”9 c: O" }& K' T1 `) w4 T
( g$ z- C5 m$ o0 @+ t7 R- m
但是后一段我运行后出错,显示第4行出错,报错:
3 s$ r( V5 [; m1 A4 TSubscript indices must either be real positive integers or logicals.
+ R: ?& }. J$ C, [. T$ L是书上错了吗?如果是,那么,按照书上的那个意思,程序应该怎么改?
6 o# D! _/ A8 R3 j( d谢谢!
作者: yazjy    时间: 2012-9-4 21:54
后一段第4行写错,书上的是:A(i,j)=x(i)^(j-1);




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