数学建模社区-数学中国
标题:
<求助>新手自学问题
[打印本页]
作者:
yazjy
时间:
2012-9-4 21:53
标题:
<求助>新手自学问题
自学,一本教程上的一个例子:
9 @% c0 `$ O7 ^& G
编程输入范德蒙德型矩阵。
2 K" e# s& ^" h2 w
在MATLAB命令窗口输入以下代码: %%实际操作的时候,是输到M文件里面的
% y0 O% U* A( o8 x' z7 U! u9 C
clear all;
# b- J Q# |/ U" ]0 A( ~) |/ {
x=[-1,0,1,2,3]';
$ g* S8 z" `- ~4 A/ S
for i=1:5
. w* u k; z5 N% R3 G
for j=1:5
/ ~- r( Q9 c5 {3 h
A(i,j)=x(i).^(j-1);
5 `/ f4 D3 ~' y! L
end
0 ?9 T' I, i; ]
end
, a, a* T) i/ G* S! c* R4 n
A
$ f( B* U4 j9 g" Z
运行后显示正确答案。
7 s7 X3 g) _4 T8 T n2 B7 ~
光是这样不错,但是书上又来了句:
- A: V; r" {' ~4 x8 p$ R$ q, k
“在实际MATLAB编程中,采用循环语句会降低其执行速度,应尽可能多地利用向量来设计程序。如上述程序可改写成以下更简明的形势:”
: _3 V) |4 _, a$ x
+ ]. b# ?6 r2 j( r) m$ b: }
然后书上贴了一段代码:
/ ]2 C0 `/ M% @8 d* a1 Q
clear all;
7 j, q. K% f9 I! i% |
x=[-1,0,1,2,3]';
) V* ^0 P, |2 y
for j=1:5
+ e% a; `* k/ w/ q( i5 J
A(i,j)=x(i).^(j-1);
$ L7 K& \8 F& E: _* Z$ ^" o
end
) M& W3 m' l M0 s
A
1 T3 @. X; l3 U4 v$ ?1 U
书上对这段的解释是:
1 e8 P) }: c+ U( A
“由于MATLAB支持向量运算,上述问题可以改用单循环来处理。”
: P$ |2 `8 ^. X8 B- ?" J
) w& D; L& _, J- j1 p
但是后一段我运行后出错,显示第4行出错,报错:
2 L+ J) F* x# C# f6 a
Subscript indices must either be real positive integers or logicals.
' v# ~, x# e" V& }
是书上错了吗?如果是,那么,按照书上的那个意思,程序应该怎么改?
6 ?! d( f' g N; W. z0 p2 x
谢谢!
作者:
yazjy
时间:
2012-9-4 21:54
后一段第4行写错,书上的是:A(i,j)=x(i)^(j-1);
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5