- 在线时间
- 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常见语法错误
( Z' d% f+ @! t% D+ ySubscript indices must either be real positive integers or logicals , Y% M4 D$ _$ T2 G# V8 u9 A, `
中文解释:下标索引必须是正整数类型或者逻辑类型
+ n9 h, D2 \! j$ f% u8 p
) M8 b+ S, k. T i4 j出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。+ W4 U8 h) Q& a# ?3 p8 `3 C4 U
l9 J3 }/ g7 H6 e) e解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。关于矩阵的各种访问方式。
& x* O9 P L! \# Y" {5 H h% r) U C0 o
举例:$ w; T# o$ b3 X1 g0 D
【错误代码】:
9 u/ e/ ~" D0 [! s! `3 H( l! {+ Q ^1. for s = 0:0.2:2
5 q& s M! \, X8 `8 O( ]' l2. a(s) = 4 * s - 1;
8 o Y. i( {& Z! `3 H3. end
* L1 k) C" [1 e【正确代码】: . A- l, J2 i$ K! z
1. , k- b9 o9 |- N
2. for s = 1:10
2 w: U G% ~1 W3. a(s) = 4 * s - 1;
a- U+ I2 R" H4 I6 _; T+ f当然,这样的赋值使用循环是低效的,因此不提倡
/ l( @1 p, T( ]9 P! \; C' G1 RUndefined function or variable "a"
: L4 ~# j/ G7 i8 e g; t中文解释:函数或变量 a 没有定义
7 d: N! A% k, h8 d. e) a1 t7 K% r/ @
出错原因及解决办法:1 X% z& U- R' H+ x
, ?3 \: i% Q6 a! r( ^4 Z
1. 如果 a 是变量,则参见 [原创]写给学习 matlab 的新手们 一贴中技巧 6 后半部分
) Z4 u/ Q. m$ E! J* T9 m2. 如果 a 是函数,则这是因为matlab在所有已添加的路径中都无法找到该函数对应的m文件而导致的,对此,把该m文件移动到当前路径下再运行便可。(注:何谓“所有已添加的路径”——在命令窗口中输入 pathtool 可以查看;何谓“当前路径”——在命令窗口中输入 pwd 可以查看)
8 t/ J' e; \ i9 l7 M! o' g1 _" j
& I- O, ? J8 d举例:
: g9 R9 r1 n3 f; p( DmyPlus.m:
6 J# H! j3 `( }& _ u+ b1. function d = myPlus(a,b)
3 Z: X5 i9 j/ A2. d = a + b; % p0 ~$ X" I" \0 x- s3 o& k
【错误调用】:
9 ]7 b- f7 j1 G- y, Y命令窗口: . Y4 J4 w( C9 z, N* E8 s
1. >> z = myPlus(a,b)
3 H0 p6 f/ m6 o0 o# L! N【正确调用】:
- o4 X8 V) X W1 f( b) z5 q命令窗口:
% L9 y7 l+ o0 I2 Y& {/ Z1. >> x = 2;
3 }% \0 Z& |1 f: A- `! r: C2. >> y = 5;
. D3 @7 Q; o' z/ M) ]$ X7 h, Z% @
+ w# J. a# I4 q) S! ]! n1 B' x9 V: s2 _" D' S( m. e
' Y7 l) [. `5 M
- O5 K- l6 o7 P0 _3 |+ b" J, }* _3 {0 l |
zan
|