QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1736|回复: 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常见语法错误
    , H5 f1 r, e- E& D1 [: h7 @( VSubscript indices must either be real positive integers or logicals , u" @; h) X5 p+ t1 A
    中文解释:下标索引必须是正整数类型或者逻辑类型3 o& y8 A2 v3 h4 a: @3 Z+ f% S
    6 P0 w& @4 \/ g
    出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。
    5 H/ a' X- S* B' c) Y  ~" X. h- H& N% b
    解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。关于矩阵的各种访问方式。 ) c4 U: Y* c0 p0 p) {4 [
    ' ?- J/ e4 H" }  s
    举例:
    9 K: E. ?" n$ q【错误代码】:
      }8 d# J" g8 X7 w1. for s = 0:0.2:2
    8 |+ G( l5 @; ?) `" ^2. a(s) = 4 * s - 1; ; ]) p+ ?% H6 s0 Q; g: j* ?
    3. end
    " D; k0 A0 y/ ?& S9 u【正确代码】:
    0 S- M4 s9 o7 \7 T% r5 J! b0 f% {1. : x: `0 @- m$ H9 R( h  a9 ~; A: L
    2. for s = 1:10 - e" H. K1 c) g9 W" t; @, Y% I
    3. a(s) = 4 * s - 1; ( H5 [) \' E: g8 q# c+ x$ x
    当然,这样的赋值使用循环是低效的,因此不提倡

    3 e2 R8 N0 R# S5 ?" N  M: tUndefined function or variable "a" $ n- b& M# \  R, q. B3 @4 l9 \
    中文解释:函数或变量 a 没有定义1 M- n9 R/ }) J
    4 x2 m7 D( g$ n* K% s% C. i
    出错原因及解决办法:
    ! S" S, a, x  U$ _4 p4 d0 l* K9 r2 H  K0 D6 n1 W; p: I: T. N; H
    1. 如果 a 是变量,则参见 [原创]写给学习 matlab 的新手们 一贴中技巧 6 后半部分
    2 |! c+ D1 R# x0 R2. 如果 a 是函数,则这是因为matlab在所有已添加的路径中都无法找到该函数对应的m文件而导致的,对此,把该m文件移动到当前路径下再运行便可。(注:何谓“所有已添加的路径”——在命令窗口中输入 pathtool 可以查看;何谓“当前路径”——在命令窗口中输入 pwd 可以查看)' {8 t. N$ q% E
    + X* i! S' Y% ^* j* f1 y  x
    举例:
    0 m* l- {4 P* |2 J. TmyPlus.m:
    * n# [! b2 C" l! Q, B( ~( [& w1. function d = myPlus(a,b) 1 k/ @8 r1 B/ ]# U- U3 x: j
    2. d = a + b;
    + Y+ {' Q* T, P5 p【错误调用】: " F: t2 E+ u3 D) |# l
    命令窗口:
    , j  J% m" M  ]  R' ^1 d* R6 j1. >> z = myPlus(a,b) / w, V5 l& R' f, g( r0 \2 P, |+ k, g
    【正确调用】:
    , q! t" X3 \$ |; R4 K0 }命令窗口: 1 w2 _( C0 K4 h+ P, Z
    1. >> x = 2; + [: d. b8 A( V
    2. >> y = 5;
    9 S5 W0 J9 d& g0 r* M* P) _/ {6 G* V$ {7 Q
    6 B2 N) L( E, U/ s1 e) v: u

    0 T. n, |1 \9 E& C6 m  {& K" J$ [) e$ I9 r% f& S( T
    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-15 08:12 , Processed in 0.423968 second(s), 56 queries .

    回顶部