QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1731|回复: 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常见语法错误6 x8 }" W1 B3 n$ g+ `7 V8 f2 m! U. X
    Subscript indices must either be real positive integers or logicals
    * u! U3 x5 v$ Y/ [- Q) A中文解释:下标索引必须是正整数类型或者逻辑类型+ [% n% K6 ?+ Z" ?
    # X0 V9 T; j* Q, ]( w) n8 N
    出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。! i7 y* b" {$ a; I7 t& C

    9 s: x+ B+ h2 V/ n解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。关于矩阵的各种访问方式。
    ! e4 \0 t5 t  u* T2 i7 t7 ^! R  T' m1 N/ Y' ?
    举例:1 w8 T8 k4 [* Z. N
    【错误代码】: 4 D6 `* R/ p: I6 ?% U! f) O
    1. for s = 0:0.2:2
    + t* B/ C' W- e- |* L- o2. a(s) = 4 * s - 1;
    $ c. g7 y2 P/ t2 A3. end
    , r; I5 d# R1 y  x【正确代码】:
    7 J; B; Y4 G8 @0 p/ b1. / V/ W, K+ @3 L: K) g& Z% T2 R
    2. for s = 1:10
    1 P  Y) R+ Z6 U: {& G8 r3. a(s) = 4 * s - 1;   S8 K  c8 k4 Z8 M2 Z* O
    当然,这样的赋值使用循环是低效的,因此不提倡
    % \  I0 [' v7 Z8 ?8 u5 |
    Undefined function or variable "a" 5 U0 R& r& s+ w) j
    中文解释:函数或变量 a 没有定义0 f" C! {% R' W% H8 q1 \% c
      I4 `* n8 I2 o( l
    出错原因及解决办法:
    7 k! i* K; u4 x. J. n: S
    $ z, K! j. z# R# l- o; Z7 S1. 如果 a 是变量,则参见 [原创]写给学习 matlab 的新手们 一贴中技巧 6 后半部分
      i0 c2 J# o( s2 `: x2. 如果 a 是函数,则这是因为matlab在所有已添加的路径中都无法找到该函数对应的m文件而导致的,对此,把该m文件移动到当前路径下再运行便可。(注:何谓“所有已添加的路径”——在命令窗口中输入 pathtool 可以查看;何谓“当前路径”——在命令窗口中输入 pwd 可以查看)
    5 ?4 I# f3 k* }# g$ G, s
    # t" Q. Y3 A$ a4 o1 O- ]举例:
    , d2 A  U- z# e$ xmyPlus.m:
    1 [1 W" Q! v5 y$ d0 @' a/ G  Z1. function d = myPlus(a,b) ' X6 \6 c/ A( F3 Y4 R6 j
    2. d = a + b;
    7 }: m. H& X# {, s; b( b& I【错误调用】:
    * ~7 W! R0 t3 h' B" R命令窗口: , L6 Q/ d' c5 v0 i
    1. >> z = myPlus(a,b)
    " M! Z1 N* z/ ?- G0 w【正确调用】: , H* q  y; q6 P6 |' i$ T* u
    命令窗口: : `, g$ z/ }9 T$ X7 C1 ]
    1. >> x = 2;
    + I3 y  e0 h0 A* ?6 E7 s2. >> y = 5;
    : I3 E6 Z# K, D: m) x$ M, W/ |/ `1 ?7 Y: ~7 c2 x

    - H" C0 U2 |1 R  [: x( q. N9 Q! N" L

    5 D1 ^$ ]6 G( D* [
    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-6-12 18:25 , Processed in 0.327059 second(s), 56 queries .

    回顶部