- 在线时间
- 2759 小时
- 最后登录
- 2017-9-15
- 注册时间
- 2011-4-3
- 听众数
- 538
- 收听数
- 4
- 能力
- 80 分
- 体力
- 1764 点
- 威望
- 27 点
- 阅读权限
- 150
- 积分
- 5990
- 相册
- 0
- 日志
- 0
- 记录
- 5
- 帖子
- 6675
- 主题
- 3503
- 精华
- 3
- 分享
- 6
- 好友
- 1721
TA的每日心情 | 开心 2017-2-7 15:12 |
|---|
签到天数: 691 天 [LV.9]以坛为家II
 群组: 2013年国赛赛前培训 群组: 2014年地区赛数学建模 群组: 数学中国第二期SAS培训 群组: 物联网工程师考试 群组: 2013年美赛优秀论文解 |
Matlab常见语法错误9 W _% ^2 W( E% o) z: k# O; ?5 }
Subscript indices must either be real positive integers or logicals
# @% {- i/ l, N2 x5 E' J. Y* N3 Q$ b u中文解释:下标索引必须是正整数类型或者逻辑类型8 \& [/ ]0 G( ]0 k+ @
$ }9 Y& a: m( k6 [7 A" l
出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。
) n" `8 T5 C7 K# B! p% C" d1 @* p- |2 ^
解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。关于矩阵的各种访问方式。
, u3 B$ V$ U! N$ y, q
& J7 T- f8 O0 e4 R9 G: A举例:2 Z( n; S9 `- `# ~5 e X: O G
【错误代码】:
7 K2 K! |5 D2 v, e1. for s = 0:0.2:2 " J. M, [# u) I9 ~3 E& i/ J" B
2. a(s) = 4 * s - 1; 8 L/ O( W M1 L. j a/ m L
3. end
7 K! W9 S) K2 M) O# p: ~- c【正确代码】: ( k1 L3 x3 j/ a% M( K/ [6 f3 p
1.
9 p8 l% o# n1 |) E7 p2. for s = 1:10
! D8 S' r6 Y2 s8 r9 d3. a(s) = 4 * s - 1;
( f3 i# b* w1 b$ O/ Q+ c5 H当然,这样的赋值使用循环是低效的,因此不提倡) U9 @3 u/ C( d" y, I D
Undefined function or variable "a" 8 Z; X, F' n. H# Y
中文解释:函数或变量 a 没有定义$ k4 D: s8 f" G/ h) o
& V% \" y9 s, N* `3 e$ e
出错原因及解决办法:- o$ \5 Q3 e) q) [! y5 r/ J
3 D# @( M6 p5 v/ A! S/ |1. 如果 a 是变量,则参见 [原创]写给学习 matlab 的新手们 一贴中技巧 6 后半部分' z/ _1 T- B5 l( g: S
2. 如果 a 是函数,则这是因为matlab在所有已添加的路径中都无法找到该函数对应的m文件而导致的,对此,把该m文件移动到当前路径下再运行便可。(注:何谓“所有已添加的路径”——在命令窗口中输入 pathtool 可以查看;何谓“当前路径”——在命令窗口中输入 pwd 可以查看)" \/ w: @7 w" g( q$ g. x
0 n5 t$ p% W, |- W; c
举例:* F8 [5 E: a6 ?7 \
myPlus.m: ! }5 p& [3 D! Q& C& F1 E
1. function d = myPlus(a,b)
* H% }9 _, W1 X4 [7 t" o2. d = a + b; 8 \ J/ z) `; S8 u+ ]. S
【错误调用】:
1 Y; D: F$ F; B1 a, |命令窗口:
% K$ }; L0 [: ^( z9 J: r1. >> z = myPlus(a,b) 4 W* W9 m+ |. S# x
【正确调用】: 6 a b! f+ D$ L) D- d4 Q) {: z9 a
命令窗口:
9 W2 D# B8 P1 {- I! H1 c- C+ C- D+ m$ c1. >> x = 2; 4 W$ G# h# H( K' ^
2. >> y = 5; + H8 ] f- Y" A4 Y' v! n, ]
- R$ v9 u$ m! H% H! M0 Z; ]# [% J, p
7 }+ J" {) m% S o: R5 f8 h) P/ H5 E* ?0 T& S4 {: }/ v, [
: M1 X: i/ `. b3 O' D; z7 @/ u; U
|
zan
|