QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1697|回复: 0
打印 上一主题 下一主题

[其他经验] Matlab常见语法错误(1)

[复制链接]
字体大小: 正常 放大

3503

主题

538

听众

5990

积分

  • TA的每日心情
    开心
    2017-2-7 15:12
  • 签到天数: 691 天

    [LV.9]以坛为家II

    社区QQ达人 元老勋章 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    群组2013年国赛赛前培训

    群组2014年地区赛数学建模

    群组数学中国第二期SAS培训

    群组物联网工程师考试

    群组2013年美赛优秀论文解

    跳转到指定楼层
    1#
    发表于 2016-4-2 17:55 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    Matlab常见语法错误9 W  _% ^2 W( E% o) z: k# O; ?5 }
    Subscript indices must either be real positive integers or logicals
    # @% {- i/ l, N2 x5 E' J. Y* N3 Q$ b  u中文解释:下标索引必须是正整数类型或者逻辑类型8 \& [/ ]0 G( ]0 k+ @
    $ }9 Y& a: m( k6 [7 A" l
    出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。
    ) n" `8 T5 C7 K# B! p% C" d1 @* p- |2 ^
    解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。关于矩阵的各种访问方式。
    , u3 B$ V$ U! N$ y, q
    & J7 T- f8 O0 e4 R9 G: A举例:2 Z( n; S9 `- `# ~5 e  X: O  G
    【错误代码】:
    7 K2 K! |5 D2 v, e1. for s = 0:0.2:2 " J. M, [# u) I9 ~3 E& i/ J" B
    2. a(s) = 4 * s - 1; 8 L/ O( W  M1 L. j  a/ m  L
    3. end
    7 K! W9 S) K2 M) O# p: ~- c【正确代码】: ( k1 L3 x3 j/ a% M( K/ [6 f3 p
    1.
    9 p8 l% o# n1 |) E7 p2. for s = 1:10
    ! D8 S' r6 Y2 s8 r9 d3. a(s) = 4 * s - 1;
    ( f3 i# b* w1 b$ O/ Q+ c5 H当然,这样的赋值使用循环是低效的,因此不提倡
    ) U9 @3 u/ C( d" y, I  D
    Undefined function or variable "a" 8 Z; X, F' n. H# Y
    中文解释:函数或变量 a 没有定义$ k4 D: s8 f" G/ h) o
    & V% \" y9 s, N* `3 e$ e
    出错原因及解决办法:- o$ \5 Q3 e) q) [! y5 r/ J

    3 D# @( M6 p5 v/ A! S/ |1. 如果 a 是变量,则参见 [原创]写给学习 matlab 的新手们 一贴中技巧 6 后半部分' z/ _1 T- B5 l( g: S
    2. 如果 a 是函数,则这是因为matlab在所有已添加的路径中都无法找到该函数对应的m文件而导致的,对此,把该m文件移动到当前路径下再运行便可。(注:何谓“所有已添加的路径”——在命令窗口中输入 pathtool 可以查看;何谓“当前路径”——在命令窗口中输入 pwd 可以查看)" \/ w: @7 w" g( q$ g. x
    0 n5 t$ p% W, |- W; c
    举例:* F8 [5 E: a6 ?7 \
    myPlus.m: ! }5 p& [3 D! Q& C& F1 E
    1. function d = myPlus(a,b)
    * H% }9 _, W1 X4 [7 t" o2. d = a + b; 8 \  J/ z) `; S8 u+ ]. S
    【错误调用】:
    1 Y; D: F$ F; B1 a, |命令窗口:
    % K$ }; L0 [: ^( z9 J: r1. >> z = myPlus(a,b) 4 W* W9 m+ |. S# x
    【正确调用】: 6 a  b! f+ D$ L) D- d4 Q) {: z9 a
    命令窗口:
    9 W2 D# B8 P1 {- I! H1 c- C+ C- D+ m$ c1. >> x = 2; 4 W$ G# h# H( K' ^
    2. >> y = 5; + H8 ]  f- Y" A4 Y' v! n, ]

    - R$ v9 u$ m! H% H! M0 Z; ]# [% J, p
    7 }+ J" {) m% S  o: R5 f8 h) P/ H5 E* ?0 T& S4 {: }/ v, [
    : M1 X: i/ `. b3 O' D; z7 @/ u; U
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-18 09:02 , Processed in 0.315867 second(s), 54 queries .

    回顶部