QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1705|回复: 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常见语法错误# m6 k# r. J  q# f" _* j, u
    Subscript indices must either be real positive integers or logicals 6 u8 M' a5 A) _2 {; t, N) N
    中文解释:下标索引必须是正整数类型或者逻辑类型
    / W7 t  i3 \8 W) F+ e2 Y# y3 e$ z  h+ q8 |; E. N. o& |/ ?2 U
    出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。7 m# e( C8 t& e2 {/ c* Y& X

    / k* [: Q# N. B) `7 A# `解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。关于矩阵的各种访问方式。
    + d0 B2 r$ D# A4 D: a- [
    ! I- r4 w# s5 S举例:
    $ M$ m/ I$ H  s+ S【错误代码】:   u4 w& }4 ?: G  f6 Y: g3 `
    1. for s = 0:0.2:2
    / c/ x0 N  `: {6 a8 K! w  A2. a(s) = 4 * s - 1; " Z, }8 t$ J& U
    3. end 7 l2 D% `% m  G& g- |5 m/ T% v( ~
    【正确代码】: / \1 A$ Z4 c0 Y! S$ E  u0 S
    1.
    0 N( ^* m: u+ X3 @0 X; U2. for s = 1:10 ! {/ u. p  P8 t# N- b
    3. a(s) = 4 * s - 1; 1 c* i. z% m" l. R1 v% u
    当然,这样的赋值使用循环是低效的,因此不提倡

    & o" k& N9 H# {# p, tUndefined function or variable "a"
    4 r) `) k$ u1 l/ [" T4 |中文解释:函数或变量 a 没有定义
    2 a- S/ R" x1 p4 i
    # o4 X: ]& K6 B. I" c$ C2 R  h" X0 Q# Q出错原因及解决办法:
    8 v) u7 @  \8 H/ a  J1 Q+ \  b: O* w& r: x
    1. 如果 a 是变量,则参见 [原创]写给学习 matlab 的新手们 一贴中技巧 6 后半部分
    . ~' m( o+ u( p% L4 g' X5 z2. 如果 a 是函数,则这是因为matlab在所有已添加的路径中都无法找到该函数对应的m文件而导致的,对此,把该m文件移动到当前路径下再运行便可。(注:何谓“所有已添加的路径”——在命令窗口中输入 pathtool 可以查看;何谓“当前路径”——在命令窗口中输入 pwd 可以查看)
    $ w! _/ l  w1 {5 Y5 A7 C
    ) D" d- R2 w: a' L! o, v举例:
    ) ?6 h3 Y8 r4 f/ n6 }4 L) \+ umyPlus.m:   n, |( p% V" I/ c0 }
    1. function d = myPlus(a,b)
    3 ^) i/ H/ r+ `0 O( C) Q, U2. d = a + b; ; h8 u- i+ @: W. ]2 [5 S
    【错误调用】: ) c" I+ A! H6 O& I, [
    命令窗口:
    8 L& G  c5 j1 P2 t. j0 T$ {1. >> z = myPlus(a,b) - {$ d1 [6 ^. T3 h# o- a, ^
    【正确调用】: ; d8 k( n7 H8 z7 w. J. [  }
    命令窗口:
      o" z( Z% ]$ L: p2 F) l" P5 h' q1. >> x = 2; 0 E- v' n) f  P# ^
    2. >> y = 5;
    - `! J) _- T# _
    : R1 z7 q8 B) {, d
    # `; V6 {( B: F/ s5 _( _  V8 s( b/ M; p4 c! o
    * i& J, F  A* a4 N% a, g4 G- M! |5 D  w. x
    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-22 01:41 , Processed in 0.415797 second(s), 56 queries .

    回顶部