数学建模社区-数学中国
标题:
<求助>新手自学问题
[打印本页]
作者:
yazjy
时间:
2012-9-4 21:53
标题:
<求助>新手自学问题
自学,一本教程上的一个例子:
) U) a8 r6 R$ }% V1 {
编程输入范德蒙德型矩阵。
* ~+ s$ q' V' Q1 V2 X: x
在MATLAB命令窗口输入以下代码: %%实际操作的时候,是输到M文件里面的
. |+ q* v& j9 m# y
clear all;
- R3 a8 O7 n: t
x=[-1,0,1,2,3]';
" E# r; I3 x8 w4 }2 f, S. _
for i=1:5
" S" b* e- ^8 x7 l, a! I; d
for j=1:5
/ Z& m( `7 Z/ b7 E; g3 J
A(i,j)=x(i).^(j-1);
3 I$ S3 N5 m5 `) L! e
end
" w: m: a+ ]# B7 w/ {2 p
end
- H! m/ b }9 Q( l3 y1 _
A
; p3 d5 _1 R( H! ~1 p4 t
运行后显示正确答案。
" @* z. u8 Q- f, U$ @
光是这样不错,但是书上又来了句:
5 f- h* g; a* c$ d, D8 c
“在实际MATLAB编程中,采用循环语句会降低其执行速度,应尽可能多地利用向量来设计程序。如上述程序可改写成以下更简明的形势:”
* {' ?9 _& R# b! d5 S2 G" E
8 f" B8 ^" d& s1 o+ y1 R8 R
然后书上贴了一段代码:
5 v9 g$ H7 |/ f6 f
clear all;
4 H# `1 F; C9 G5 }$ q( o/ `/ X: R
x=[-1,0,1,2,3]';
2 h7 i ]% {" S" V G
for j=1:5
6 I% |( O# N8 ^$ r
A(i,j)=x(i).^(j-1);
6 [9 n' W+ Q% }1 j: Y9 n7 a. _
end
- ~1 `( z' O1 Q
A
" i) ^! A# ]1 P( N1 r0 ]
书上对这段的解释是:
) T, x( d. W# Q/ e x
“由于MATLAB支持向量运算,上述问题可以改用单循环来处理。”
1 G3 v3 t/ S2 q5 B, L7 Y
" s2 j5 t+ a1 U2 j4 x/ `7 b* Z
但是后一段我运行后出错,显示第4行出错,报错:
W3 |3 |% J$ H$ z$ E
Subscript indices must either be real positive integers or logicals.
! Y9 h/ L+ h. k! J
是书上错了吗?如果是,那么,按照书上的那个意思,程序应该怎么改?
. w) x# N+ e" ^- c
谢谢!
作者:
yazjy
时间:
2012-9-4 21:54
后一段第4行写错,书上的是:A(i,j)=x(i)^(j-1);
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5