在线时间 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常见语法错误6 c. Q3 b) g: m
Subscript indices must either be real positive integers or logicals
/ H( ?7 F, A3 M6 n: s 中文解释:下标索引必须是正整数类型或者逻辑类型8 K. s( @5 v1 m' c
, T' m2 T4 ^. P8 _' X( R# s6 Z 出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。
8 }/ T8 w# y) b# U' S
+ S3 o( M$ D3 Z$ V; \" d, Q: X" |# R 解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。关于矩阵的各种访问方式。 , b" N0 w; \! z, o/ t
+ [) h8 @: q' W. M0 y5 p/ C 举例:
( o" g0 M, G& w M& _/ m. C5 y9 e 【错误代码】:
7 p( M% j8 `/ k9 R1 x' A 1. for s = 0:0.2:2
4 }7 U6 D0 X/ x, H' W5 ? 2. a(s) = 4 * s - 1;
. W; B/ ?$ S2 M 3. end * m# O6 u" d$ P9 L2 C7 j. ]' }4 S
【正确代码】: 4 z4 u. U' o* n r
1. 9 U, }2 z3 m/ F4 S" @1 J& u
2. for s = 1:10
% c S) s" ^& A6 R1 z 3. a(s) = 4 * s - 1; 6 z( h$ b2 D2 b" H7 T
当然,这样的赋值使用循环是低效的,因此不提倡
; e0 D& I0 h, N$ E8 M. J Undefined function or variable "a"
1 u: d/ i7 w+ T5 `" [/ N% }$ {% o$ Q, e 中文解释:函数或变量 a 没有定义
. x. U2 R$ E3 T5 B$ A$ W4 ^; Z " y' u2 @+ ?3 M0 s5 l* b
出错原因及解决办法:
: B4 U- A; g# h6 {3 t* E
% d& ~5 C" A+ P, d" B5 h' s 1. 如果 a 是变量,则参见 [原创]写给学习 matlab 的新手们 一贴中技巧 6 后半部分
' z3 z8 v& ^7 u2 e& Q; V5 S 2. 如果 a 是函数,则这是因为matlab在所有已添加的路径中都无法找到该函数对应的m文件而导致的,对此,把该m文件移动到当前路径下再运行便可。(注:何谓“所有已添加的路径”——在命令窗口中输入 pathtool 可以查看;何谓“当前路径”——在命令窗口中输入 pwd 可以查看) 5 ^) H2 y j$ B1 a" `* H" P' n
, T9 i/ c+ n- \& V! D2 v
举例: 3 N' x% \1 G) v- H8 Y
myPlus.m:
' w* X1 N, n; ?7 _6 D* o9 e3 ^ 1. function d = myPlus(a,b) ) D9 T, a9 s" c* l" j" @
2. d = a + b; 7 m4 F8 ? \* S! `) a) H2 z3 f7 T
【错误调用】: 8 D7 z7 e$ i8 M' b \
命令窗口: * d0 k/ Z' d8 Q! n) O
1. >> z = myPlus(a,b)
$ B& q& g* f, ]: n7 J6 h! |! d 【正确调用】:
2 D. L* J' v* C6 f 命令窗口: 7 @5 h. {8 W1 L& P$ V. c
1. >> x = 2; 5 Q5 U4 h x) @# c- h9 c) ]3 M
2. >> y = 5; ; d5 ^. w! u* b: u
/ ^7 s* [1 D( P1 i
7 Q+ o1 h& c, R9 B! \5 }2 q
: R& O9 m9 M2 j3 ]9 |2 p3 t! \ / X- R0 y0 w! n/ P8 g' U
zan