- 在线时间
- 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常见语法错误2 m/ ^* v3 d* t+ Y* ]+ p
Subscript indices must either be real positive integers or logicals
0 q* j# j5 M- [' R3 w/ r中文解释:下标索引必须是正整数类型或者逻辑类型( Y6 V1 O# m2 D- j0 |% t( X
8 p: x% Y$ `' q6 s0 \3 D* A1 q
出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。; c# `7 n( ~4 `( c d
9 T" d7 `2 E! s3 h/ H/ m解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。关于矩阵的各种访问方式。
1 l$ l2 t; \8 q- E+ J5 U
# l) j. p# n; W0 N1 F6 b4 q7 y举例:- _ x) t* Q, c' F, B/ \1 r
【错误代码】:
& S& Z. z& w9 ^0 |# q7 M1. for s = 0:0.2:2 8 c1 X7 P9 _' X( b+ w- D5 `
2. a(s) = 4 * s - 1;
, ^* G) C( g) ^+ |4 r) H, W3. end
5 @9 X. a2 |# d. }) c【正确代码】:
( }1 U, G( I0 h* T$ r- `1. , {! A9 m; A' @$ h
2. for s = 1:10 , g! e& n$ a# O. h7 f
3. a(s) = 4 * s - 1;
, M, H0 O" C* J- p当然,这样的赋值使用循环是低效的,因此不提倡, U4 F$ U% `; Z. f- \) k
Undefined function or variable "a" $ T: I: Q; |/ i9 S2 A' G
中文解释:函数或变量 a 没有定义
+ t2 Z7 S3 R2 B1 F$ I- p. {2 [5 g/ [+ v
出错原因及解决办法:6 `( T: q8 I2 }9 p" L
9 T, b' `2 ~, d* G" m6 l, D% P- h1. 如果 a 是变量,则参见 [原创]写给学习 matlab 的新手们 一贴中技巧 6 后半部分
8 U* F) q1 n/ v2 Y6 g4 S9 Q2. 如果 a 是函数,则这是因为matlab在所有已添加的路径中都无法找到该函数对应的m文件而导致的,对此,把该m文件移动到当前路径下再运行便可。(注:何谓“所有已添加的路径”——在命令窗口中输入 pathtool 可以查看;何谓“当前路径”——在命令窗口中输入 pwd 可以查看)
$ O/ b: R1 a- E2 H/ U2 f3 t3 X( b# p3 Z1 f+ w& {
举例:4 k/ s f& d! z
myPlus.m:
+ b, ? Z! u" R' d0 b0 Y& x1. function d = myPlus(a,b) . D/ j( g1 T4 d. J% D4 h+ O* Z
2. d = a + b;
' O6 N( j+ a/ l! T. ?4 ?' N: _【错误调用】: - y4 a5 M- `, G7 \- v$ h3 F6 k
命令窗口:
2 Y6 i% x( V+ w# ~' X7 D1. >> z = myPlus(a,b)
3 @2 F% J$ g9 l! X【正确调用】: ( ^( U q- i" @2 x5 x2 n4 H
命令窗口: / j0 v; A6 W4 R7 [# U4 k# D* a
1. >> x = 2; " N4 ]( w8 x0 H' l7 d
2. >> y = 5;
5 x* ~, l' Q- { }% h, E+ \9 s
; @' B8 R* [) Q; J7 m! a) E
) K4 j0 \7 o4 m+ f
3 j/ a" i) g; S; d" \8 j/ |% f& y( r
) [( a/ c _" r- @) E |
zan
|