QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1758|回复: 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常见语法错误
    # x; ~$ |% ~( f+ x0 z2 i" u% TSubscript indices must either be real positive integers or logicals
    4 H3 O8 \: m' M2 \! A中文解释:下标索引必须是正整数类型或者逻辑类型
    5 |; g4 m8 v! J5 C5 }* P" K% I
    4 A- C  Y+ ^7 u9 u+ l出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。
    6 H/ S7 V3 J$ r& [6 r* m
    . S& Y0 ?9 ~9 n4 Q0 ^9 m解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。关于矩阵的各种访问方式。
    # \# a' S( w% ~2 ]( b( ]( ~7 o3 w- k  N" K8 R- H  G
    举例:  }/ W) v' C$ ]( s0 R. d1 F4 ]
    【错误代码】: 8 ]5 m8 ^0 A# d' S; s
    1. for s = 0:0.2:2
    - Y3 f7 {1 _0 {  K! b7 o2. a(s) = 4 * s - 1;
    : H' r; \7 V1 w$ a& w3. end
    % ]8 q$ A+ K' D& f6 j" v9 {【正确代码】: 2 p; }6 U1 ?/ }5 P
    1.
    ; B9 N7 ~8 Z  x; ^4 W1 n2. for s = 1:10
    + R5 H/ ^& l1 }" x2 O# s1 M3. a(s) = 4 * s - 1; - v) {" S( X, q" B0 C& U
    当然,这样的赋值使用循环是低效的,因此不提倡
    * t8 ]: `) b7 v
    Undefined function or variable "a"
      l1 ~* {. Q" E. e( W: _中文解释:函数或变量 a 没有定义$ @1 s" L; Z. C- d% l6 Q" @4 J

    * S- Y  N3 J, N出错原因及解决办法:
    " @3 d* O; i2 G% W
    8 X4 I5 r" `; E7 c' o2 z1 [- Z7 ~1. 如果 a 是变量,则参见 [原创]写给学习 matlab 的新手们 一贴中技巧 6 后半部分
    ; {/ Y: H) x+ D5 A% x9 s$ b2. 如果 a 是函数,则这是因为matlab在所有已添加的路径中都无法找到该函数对应的m文件而导致的,对此,把该m文件移动到当前路径下再运行便可。(注:何谓“所有已添加的路径”——在命令窗口中输入 pathtool 可以查看;何谓“当前路径”——在命令窗口中输入 pwd 可以查看)
    : a+ N; d0 u6 s+ Z. M+ a3 e
    ) {3 U  s' p3 d举例:, P/ S* i7 r7 X7 \: O# ^
    myPlus.m:
    0 C4 t4 B0 A0 b/ K1. function d = myPlus(a,b) 1 N! B( q" M+ @+ q# B* r
    2. d = a + b;
      x4 K7 u2 b* i【错误调用】: - b/ }& u/ t7 K# g
    命令窗口:
    0 J2 f5 x, z8 Z, w1. >> z = myPlus(a,b) $ h; m# K% Q" e9 `4 F5 {" w
    【正确调用】: $ R& C9 c/ E( C" x& z( K7 d
    命令窗口: 1 ?' q  w& R0 J. w/ O& i+ L, [
    1. >> x = 2; . I6 Q: b! ?$ w8 {" I9 v* d
    2. >> y = 5;
    $ }& Q1 t# B! p0 v! ~( k3 S6 o3 w9 Y1 l: o" Y9 U$ w) L7 G" B4 M
    1 [! t3 {/ y- Y+ e
    * J8 u; y, W: t9 j
    0 I5 D) K/ _. Z- F+ K% 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-7-29 00:58 , Processed in 0.447932 second(s), 58 queries .

    回顶部