标题: Matlab常见语法错误(1) [打印本页] 作者: 百年孤独 时间: 2016-4-2 17:55 标题: Matlab常见语法错误(1) Matlab常见语法错误( T8 ^0 ^3 D$ a* j4 L3 e+ H
Subscript indices must either be real positive integers or logicals o, s: S' M* `
中文解释:下标索引必须是正整数类型或者逻辑类型+ M/ q9 l. w, S) B1 f$ A$ M
; `* N7 t$ N9 L, ^, z4 }- t出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。 ' ]- Q+ O3 f3 O# d( }* n0 A {& y8 Z7 v
解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。关于矩阵的各种访问方式。 1 p- j. R7 A- y& Q4 w6 Z& ~1 P$ M
举例:7 d3 }& o" j; Y3 {* u# D. C
【错误代码】: 5 V. S- m) F5 Z) \1 ~1. for s = 0:0.2:2 : J3 N3 F' s. q! w8 y* m) R2. a(s) = 4 * s - 1; : B p/ H7 s( {, k. T7 o4 W
3. end : Q; u$ T/ ~3 F( }/ T0 j' f0 |【正确代码】: 7 R8 A$ S; b; {. b" g; M; C1. . P m) m$ d5 ^/ {2. for s = 1:10 . J/ W$ Y4 F2 j: W& z" v* ?$ B" K
3. a(s) = 4 * s - 1; 3 i) R1 \; v: |
当然,这样的赋值使用循环是低效的,因此不提倡: \$ n' \ B. H- d. ]3 M
Undefined function or variable "a" 8 l0 M% i' e0 f
中文解释:函数或变量 a 没有定义8 m0 F* ]8 n/ @5 h8 T, `2 }% l