数学建模社区-数学中国

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

作者: yazjy    时间: 2012-9-4 21:53
标题: <求助>新手自学问题
自学,一本教程上的一个例子:3 K4 I+ e. J. H' F
编程输入范德蒙德型矩阵。) }# q$ p- X6 x
在MATLAB命令窗口输入以下代码:          %%实际操作的时候,是输到M文件里面的
6 o( T- E: z! ?( _" ~clear all;, O( ~" |- R+ r
x=[-1,0,1,2,3]';4 S3 T) v& D  M: i) H
for i=1:5! ?' \  C! ?6 l8 ?; }8 Z$ A. D5 t# m
    for j=1:5
: T5 p: S8 ~7 q         A(i,j)=x(i).^(j-1);
8 W2 C5 S! `6 ^; J    end
5 l6 o& m8 K' B0 ]  w& Cend% A5 b. L# p' c/ ]1 d
A* L5 l$ w# N2 ?1 r, w* Y2 D
运行后显示正确答案。
# `+ Y$ }3 V+ m3 W光是这样不错,但是书上又来了句:
. R$ N+ _9 R. V) U2 i- R“在实际MATLAB编程中,采用循环语句会降低其执行速度,应尽可能多地利用向量来设计程序。如上述程序可改写成以下更简明的形势:”
7 @& `. u1 g& F* a4 Q
; k* e: L6 g9 ]% k然后书上贴了一段代码:
* i* ], b4 d9 `, N# S. c- U/ d7 ~clear all;  E; p4 n" ^$ A% o6 V2 e( o
x=[-1,0,1,2,3]';2 W: ^  z5 G  }% X* @) Z
for j=1:5
# \* M$ S! I$ b6 m+ T# ?    A(i,j)=x(i).^(j-1);
, l5 l+ e6 R& v7 U$ dend% g! Q" N6 Q2 r( k$ c
A
# B$ U9 M) u3 r/ h: i: W' o) k9 e书上对这段的解释是:
& Z1 C0 g9 a" z: ~“由于MATLAB支持向量运算,上述问题可以改用单循环来处理。”3 x9 v2 j; W2 `  K( p4 d# }

/ f/ V$ A# V# N9 u' a, X0 @3 Y$ N但是后一段我运行后出错,显示第4行出错,报错:
( }/ c- @; O; H+ [) [8 tSubscript indices must either be real positive integers or logicals.! X+ B' B. H+ z7 ]% R9 m" \- [
是书上错了吗?如果是,那么,按照书上的那个意思,程序应该怎么改?
( p2 j2 Z5 [# h0 e# w谢谢!
作者: yazjy    时间: 2012-9-4 21:54
后一段第4行写错,书上的是:A(i,j)=x(i)^(j-1);




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