数学建模社区-数学中国
标题:
<求助>新手自学问题
[打印本页]
作者:
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& C
end
% 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$ d
end
% 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 t
Subscript 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