- 在线时间
- 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常见语法错误& }- e/ d4 r' W" o1 B2 ]7 }
Subscript indices must either be real positive integers or logicals . P1 D. k3 V \
中文解释:下标索引必须是正整数类型或者逻辑类型
! l. {! e- C ]) t; U5 [$ g4 c4 g8 o1 i
7 M- s7 ]$ E4 Q2 B出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。
- O9 t: W) w0 z: c8 |- N0 l4 `- {" l) L5 x& J- Z; w
解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。关于矩阵的各种访问方式。
* Y( f# S8 H6 Z& @: [7 Y& z4 O9 [# K0 I
举例:( A" h# w$ g- G" E# ]
【错误代码】: 4 ^- X6 L& T2 h1 _+ P( i) d ?
1. for s = 0:0.2:2 , C# ^+ z1 v# v e0 y n
2. a(s) = 4 * s - 1;
' v/ f1 y2 a2 v1 ]0 p( [9 Z, H) M) l3. end 8 N7 A0 v. Y: h1 h, o; }5 ?; ^
【正确代码】:
, B+ K6 s' M6 @6 _) D: @2 K1.
- }' F, G9 D4 x- y0 [# ?& h2. for s = 1:10
. I. ~4 y5 }8 [( b( E3. a(s) = 4 * s - 1; ; ~" F4 H+ m( m
当然,这样的赋值使用循环是低效的,因此不提倡 _# r% w1 d' Y* ^5 W8 i
Undefined function or variable "a" . Q' |4 w8 K, t' A
中文解释:函数或变量 a 没有定义! G( ?( S# R$ e; K# I
& f! U' [6 Y: j; t! u8 @# D出错原因及解决办法:6 ~( B; `1 d- {1 G+ b6 {4 w6 p- }
6 @! f- {8 m6 ~* M7 A1. 如果 a 是变量,则参见 [原创]写给学习 matlab 的新手们 一贴中技巧 6 后半部分
5 q, P3 P; G& ^2. 如果 a 是函数,则这是因为matlab在所有已添加的路径中都无法找到该函数对应的m文件而导致的,对此,把该m文件移动到当前路径下再运行便可。(注:何谓“所有已添加的路径”——在命令窗口中输入 pathtool 可以查看;何谓“当前路径”——在命令窗口中输入 pwd 可以查看)* G" {1 ?3 {/ j0 _3 A( |6 T
6 T2 c/ T1 Q1 m
举例:
+ U8 h9 ~/ }% }" l2 [' Y/ h9 HmyPlus.m: * n- C$ V |( w4 p& E
1. function d = myPlus(a,b) $ C; n, j- B) L+ L
2. d = a + b; ' _. o! s( u) m1 S& R( c7 Z+ l7 t* `5 C
【错误调用】:
0 j+ f) z/ ^* s( C; [5 w) T命令窗口:
0 n# C" ]4 T4 {1. >> z = myPlus(a,b) 0 F1 Z8 |( a2 B; H# }' D
【正确调用】:
* ^# J$ ]9 A4 K v命令窗口: : |$ ?# o( x( W" a7 k& X( l; k
1. >> x = 2;
) Y v4 z4 \3 h( C2. >> y = 5;
' S8 p* f* _6 F) T2 ?9 r7 y! w% d7 \5 X( i C; m l* T. ?
3 D3 u& {* h2 ]- }6 \
' l+ W+ f) i! p! H3 Y) d' C4 K
|
zan
|