- 在线时间
- 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常见语法错误
: j- D% n8 a+ V2 b( i7 USubscript indices must either be real positive integers or logicals
! k, W2 M: E+ ~3 S8 z1 G中文解释:下标索引必须是正整数类型或者逻辑类型
' d; {: w5 w* T' |0 U: o' H
: y2 M2 B0 U0 {! u出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。
8 D4 h5 W' M$ N! G7 P$ n, ?. e3 Y! m. B9 Q/ k, y& q" q7 b
解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。关于矩阵的各种访问方式。
- k% U3 u8 S- s2 A: z
# }* l4 j7 e& g% _' `" p举例:
! p! G1 Q7 F- [2 k* Q. A【错误代码】: ) k5 d. Q; O/ ^
1. for s = 0:0.2:2
3 G* J' P6 s% ?2. a(s) = 4 * s - 1;
' d! b! }+ h6 k2 l' v3. end & I: a5 ?7 y) _' ]
【正确代码】: 3 \% O4 [- `: q2 T% p) u
1. 7 R# m! `7 d+ k3 Z+ O
2. for s = 1:10 + ?; F% _* a( M# M, w: ]1 b( w
3. a(s) = 4 * s - 1;
$ D" B- }! e$ z当然,这样的赋值使用循环是低效的,因此不提倡" G* x* d# m# I; J1 w+ g8 {
Undefined function or variable "a" ) W, J5 T- Y5 a1 ~7 y5 w
中文解释:函数或变量 a 没有定义
! I& z7 d& T5 t( B
^! s7 L4 K3 L1 [( {( q出错原因及解决办法:
% ~- {4 S2 m& X$ e3 j
" R" r1 k! g9 M1. 如果 a 是变量,则参见 [原创]写给学习 matlab 的新手们 一贴中技巧 6 后半部分3 T# J7 M/ j! [& g* R
2. 如果 a 是函数,则这是因为matlab在所有已添加的路径中都无法找到该函数对应的m文件而导致的,对此,把该m文件移动到当前路径下再运行便可。(注:何谓“所有已添加的路径”——在命令窗口中输入 pathtool 可以查看;何谓“当前路径”——在命令窗口中输入 pwd 可以查看)
9 ~0 \$ k' R0 [% Z6 G
& j6 v7 g" g1 C+ p# E5 j2 Q- Q# W举例:* a: c" V* [ f) A' a
myPlus.m:
( A5 d' C% O* B" n ?1. function d = myPlus(a,b)
. i- w7 k9 {7 @2 L9 D2. d = a + b; & A6 o a" V6 j; _; u4 L# |4 ]& ?
【错误调用】:
7 r; E9 A; [2 |命令窗口:
1 x# S& i1 v7 P6 f+ U5 J1. >> z = myPlus(a,b)
, j. W3 B, ]9 c8 q% j【正确调用】: ( w! o/ e( A7 h3 Z* f) J8 `
命令窗口:
: q. a# W: j8 f1. >> x = 2;
' U" p* Y& O# n4 g. K9 t2. >> y = 5;
7 i- k2 C2 {& g, Q% s: ^3 W: P) q2 m
0 ^& d6 R5 u$ B! Y/ O* i# X
% F+ l- e( x3 n" o
2 c+ b0 |7 H! T$ W. R% t$ K |
zan
|