数学建模社区-数学中国
标题:
<求助>新手自学问题
[打印本页]
作者:
yazjy
时间:
2012-9-4 21:53
标题:
<求助>新手自学问题
自学,一本教程上的一个例子:
$ I7 `1 f0 e! d/ J2 s
编程输入范德蒙德型矩阵。
3 {$ E+ y# u, m- d$ T" a
在MATLAB命令窗口输入以下代码: %%实际操作的时候,是输到M文件里面的
7 @: e% z0 e0 F! f6 x
clear all;
6 {1 ~4 z6 O! ~4 P
x=[-1,0,1,2,3]';
1 _2 S6 N0 r9 C* { m8 G
for i=1:5
2 ^9 { E+ t R( S
for j=1:5
& e7 X$ Y9 o6 U3 N% [, @1 p
A(i,j)=x(i).^(j-1);
6 b7 x0 R* R: {
end
6 P6 T3 F0 n4 i: U0 {
end
9 P3 ^7 `2 [& y2 O4 b. K* H
A
, a+ r. ]/ }" s: a
运行后显示正确答案。
: u4 f7 q' U9 G/ P; z9 q
光是这样不错,但是书上又来了句:
& e+ ~3 U# ^+ j. W/ h( o
“在实际MATLAB编程中,采用循环语句会降低其执行速度,应尽可能多地利用向量来设计程序。如上述程序可改写成以下更简明的形势:”
2 s6 s8 s7 x* r" l1 z4 L
; t# h* S, q! `0 m
然后书上贴了一段代码:
) {6 Q& c, z6 c0 Q; o; \) r
clear all;
! a' n* D8 z& r- P" U. r+ F! L
x=[-1,0,1,2,3]';
3 J! q: w) ^# l+ v8 I f; h% l/ c; q
for j=1:5
" |4 d' z( C5 Q; R& L$ x
A(i,j)=x(i).^(j-1);
$ C2 ?) L8 B { O% @: A
end
7 l- X4 M; |2 V. e5 l' d/ P
A
( |9 Q/ I7 p8 g: C3 E# q( Y, Z
书上对这段的解释是:
- B7 g4 R3 [1 P# N9 K: y
“由于MATLAB支持向量运算,上述问题可以改用单循环来处理。”
7 t3 d, B5 s- J* H
, b4 B% e2 W" Y
但是后一段我运行后出错,显示第4行出错,报错:
) x, |. w0 p/ `3 Q0 F# t; \
Subscript indices must either be real positive integers or logicals.
% V/ C) O. [9 n' l8 v
是书上错了吗?如果是,那么,按照书上的那个意思,程序应该怎么改?
0 }9 a& w( l, W, V/ x
谢谢!
作者:
yazjy
时间:
2012-9-4 21:54
后一段第4行写错,书上的是:A(i,j)=x(i)^(j-1);
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5