数学建模社区-数学中国
标题:
<求助>新手自学问题
[打印本页]
作者:
yazjy
时间:
2012-9-4 21:53
标题:
<求助>新手自学问题
自学,一本教程上的一个例子:
! {& x/ s6 c7 a5 Z+ Z. j
编程输入范德蒙德型矩阵。
6 G B# z% ?7 D( |0 Z
在MATLAB命令窗口输入以下代码: %%实际操作的时候,是输到M文件里面的
; X7 x2 k1 Z* Y) V' i; { c) B& z
clear all;
8 `0 I/ m% H$ D! D8 l
x=[-1,0,1,2,3]';
7 Z0 p$ r7 Y0 D5 R: M% F
for i=1:5
4 D& B0 W( e! P4 M0 ~+ i
for j=1:5
7 ~0 d/ ?2 n5 G) G' l# a& t5 @
A(i,j)=x(i).^(j-1);
# F0 ]! y/ a4 T5 [* @# J
end
/ L7 c. Z& M" f$ C4 T2 N
end
3 q6 C2 L% V4 Z- z y
A
$ r5 Z" F# Z; Q4 A. a
运行后显示正确答案。
; K0 r$ ]( P5 R. d+ U
光是这样不错,但是书上又来了句:
: \5 A8 U( o2 @8 `5 }8 |
“在实际MATLAB编程中,采用循环语句会降低其执行速度,应尽可能多地利用向量来设计程序。如上述程序可改写成以下更简明的形势:”
4 R" T. B; G3 K2 w; G2 z% o- X* S
1 b2 c4 R0 U6 U8 O, H
然后书上贴了一段代码:
# W/ h: X2 E, N
clear all;
7 [* F4 T6 a# a# t' d! m/ \& e: ^
x=[-1,0,1,2,3]';
. ^: [2 j& K6 i; h
for j=1:5
5 b0 Z/ p% s5 Z' x* G
A(i,j)=x(i).^(j-1);
! l# X# `& M4 J) C j& _ B) |) U' v; s1 m
end
8 u# K* _) a6 f2 `$ [$ o- }' C- Y
A
' K. B" `( `! q' Q* c
书上对这段的解释是:
; r6 s$ J5 T% M! \9 c0 f1 o
“由于MATLAB支持向量运算,上述问题可以改用单循环来处理。”
3 o- c. r6 i, b3 o5 I' H
8 v! j) B+ [/ Q6 E; s$ w. ?
但是后一段我运行后出错,显示第4行出错,报错:
2 y6 ^7 A- z. l2 {
Subscript indices must either be real positive integers or logicals.
' m P4 u' r- `4 E
是书上错了吗?如果是,那么,按照书上的那个意思,程序应该怎么改?
" M2 W3 X( [5 V0 H1 y" R( x
谢谢!
作者:
yazjy
时间:
2012-9-4 21:54
后一段第4行写错,书上的是:A(i,j)=x(i)^(j-1);
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5