- 在线时间
- 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常见语法错误1 j- g: q; p6 v, t: K
Subscript indices must either be real positive integers or logicals 3 S- z* K+ _0 v2 ]& _
中文解释:下标索引必须是正整数类型或者逻辑类型$ v7 D* p4 n9 k* o% ^1 M% U- A- |
6 x/ U6 x3 |- }5 D, m出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。* X+ t+ t2 M& x9 Q8 K
0 ~$ m6 Z% H6 M) L& Z5 N" C4 K2 w
解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。关于矩阵的各种访问方式。
. ^; ]% A g6 P( ~; Z8 c5 K
6 @& F5 x, q+ ^% H- Z9 Z) S4 |1 J举例:
4 _( S) ^9 k- M6 @7 J! v【错误代码】: $ [2 w5 V" Z) K+ _+ v! K8 O: P
1. for s = 0:0.2:2 ! b& W9 V# i# e2 D# @) ~
2. a(s) = 4 * s - 1;
~- p, X1 P$ K( e+ j0 n8 G& v3 e3. end ! p- _9 h* t. Q; v: l
【正确代码】:
! K+ N9 Z, T7 Q' d2 v8 R1.
% D I+ m; q$ {( e$ t$ y) m5 }: n( W- ~ p2. for s = 1:10
0 r: |2 l5 j' w% F7 U3. a(s) = 4 * s - 1; 4 h+ w# w1 n( l8 B6 u
当然,这样的赋值使用循环是低效的,因此不提倡
. U6 C/ f" s7 qUndefined function or variable "a" & T! N3 E2 W) ^
中文解释:函数或变量 a 没有定义
7 ~3 F' p) r3 _9 A- O0 s! R: B# H2 \# Y. k& j# X9 e8 d
出错原因及解决办法:0 Z. I$ {! L1 j% k4 U9 I$ H
; o. I2 R% z* C. O2 L: Q, }1. 如果 a 是变量,则参见 [原创]写给学习 matlab 的新手们 一贴中技巧 6 后半部分; B7 d$ g& y( z: c
2. 如果 a 是函数,则这是因为matlab在所有已添加的路径中都无法找到该函数对应的m文件而导致的,对此,把该m文件移动到当前路径下再运行便可。(注:何谓“所有已添加的路径”——在命令窗口中输入 pathtool 可以查看;何谓“当前路径”——在命令窗口中输入 pwd 可以查看)
/ Q. G$ h( t( c
[+ Y: a6 G# c- @* F) J3 b举例:
7 b- E) O7 \4 U' nmyPlus.m:
' O2 j! ]" H1 t( g: K1. function d = myPlus(a,b)
* [# n( t/ s7 E* Y/ Q5 f# p* ]( W2. d = a + b; 9 J' R7 b+ m+ }, Q* E2 Q2 [; D
【错误调用】: & W; Q3 L8 b7 k# y" t8 \: i
命令窗口: " W* U. m1 O& k/ L& c' z
1. >> z = myPlus(a,b)
0 n0 ~ _! r3 [6 I! f) F! p& I7 M【正确调用】: + V! N* }8 P, V2 g; l6 b$ z; C6 l
命令窗口: # a" H: V* t2 m3 i( p
1. >> x = 2;
, V7 I2 ~: G; i" G2. >> y = 5; 8 R* d6 g1 `8 k. \
4 A: j4 s- P1 r9 A1 i& ~/ e5 j
6 Y: L/ _) l: S1 v8 b( n# c& t4 p: D& \3 q U r
' t! t: x: c" Z ^+ M: v, Q- p
|
zan
|