QQ登录

只需要一步,快速开始

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

MATLAB变量的初始化

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

413

主题

36

听众

1854

积分

升级  85.4%

  • TA的每日心情
    开心
    2019-9-18 21:55
  • 签到天数: 258 天

    [LV.8]以坛为家I

    社区QQ达人

    群组2015国赛冲刺

    群组2016美赛公益课程

    群组国赛讨论

    群组第三届数模基础实训

    群组Matlab讨论组

    跳转到指定楼层
    1#
    发表于 2015-8-29 22:16 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta

    2.2 MATLAB变量的初始化
    当变量初始化时,MATLAB将会自动建立变量。有三种方式初始化MATLAB中的变量:

    1.用赋值语句初始化变量

    2input函数从键盘输入初始化变量

    3从文件读取一个数据


    2.2.1 用赋值语句初始化变量
    最简单的创建和初始化一个变量的方法是用赋值语句赋予变量一个或多个值。赋值语句的一般形式如下

    var = expression

    var是变量名,expression可以是一个标量、一个数组或常量、其他变量和数学运算符号(+-)的联合。这个表达式(expression)的值是通过一般的数学运算法则计算出来的,然后将产生的结果存储到变量var中。下面是一些用赋值语句初始化的变量:

    var=40*i;
    var2=var/5;
    array=[1 2 3 4];
    x=1;
    y=2;


    第一个例子创建了一个double类型的标量变量,存储了一个虚数40i。第二个例子创建了一个表达式var2,把var/5的值存储于内。第三个例子创建了一个数组array,并存储了一个4元素的行向量于内。最后一个例子显示了多个赋值语句可写在同一行,中间用逗号或分号隔开。注意如果在赋值语句执行时变量已经存在,那么这个变量原有的值将被覆盖。

    正如第三个例子显示的,数据数组也可以初始化变量。我们可以用是括号()和分号建立数组。所有元素按行阶排序,换句话说,每一行的值从左向右,顶部的行置于最前,底部的行置于最后。在一行内单个数值可用空格或逗号隔开,而行与行之间要与则用分号隔开,或另起一行书写。下面的表达式都是合法的,能用于建立一个变量:

      
    [3.4]
      
    这个表达式创建了1×1数组(一个标量),包含数值3.4.这时括号可以省略.
      
    [1.0 2.0 3.0]
      
    这个表达式创建了1×3数组,一维行向量[1 2 3]
      
    [1.0;2.0;3.0]
      
    表达式创建了一个3×1数组,一维列向量file:///C:/Users/lx/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
      
    [1,2,3;4,5,6]
      
    这个表达式创建了一个2×3数组,矩阵file:///C:/Users/lx/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif
      
    [1,2,3
       
    这个表达式创建了一个2×3数组,矩阵file:///C:/Users/lx/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif
      
    []
      
    是个空数组,没有行,没有列(注意他与元素全为零的数组的区别)

    注意一个数组每一行元素的个数必须完全相同,每一列元素的个数也必须完全相同.[1 2 3;4 5]这样的表达式是非法的,因为第一行有3个元素,第二行有只有2个元素.


    常见编程错误

    每一行元素的个数必须完全相同,每一列元素的个数也必须完全相同.试图创建一个不同行()拥有不同数目元素的数组,在编译时将会出现错误.


    用于初始化数组的表达式可以包括代数符号或事先已经定义好的数组.例如赋值语句

    a=[0 1+7]
    b=[a(2) 7 a


    定义了数组a=[0 8]和数组b=[8 7 0 8].

    当我们创建一个数组时,不是每一个元素都必须定义.如果要定义一个特殊的数组,或只有一个或几个元素没有定义,那么之前的那些元素将会自动创建,并初始化为0.例如,如果数组c事先没有定义,语句c(2,3)=5将会创建一矩阵file:///C:/Users/lx/AppData/Local/Temp/msohtmlclip1/01/clip_image007.gif。相似地,指定一个值赋予一个存在的数组,但超过了这个数组的大小。例如,假设存在一数组d=[1 2],下面这个语句

    d(4)=4;


    将会制造出数组d=[1 2 0 4].

    在每个赋值语句末的分号有特殊的目的:无论在何时一个表达式在赋值语句中被赋值,分号将会中止变量值的重复。如果句末没有分号,变量值将会自动显示在命令窗口(The Command Windows)中。

    >> e=[1 2 3;4 5 6]
    e =
        1     2     3
        4     5     6


    如果在赋值语句末有分号,这种重复将会消失。重复是一个用于检查你的工作极好的方法,但是它降低了运行速度。因此,我们在一般情况下总是禁止重复。尽管如此,重复计算的结果提供了一个强大的应急调试器。如果你不能确定一个特定的赋值语句结果是多少,这时你可以去掉这个语句后的分号,当这个语句编译时,结果会显示在命令窗口(The Command Windows)


    好的编程习惯

    MATLAB赋值语句后加上一个分号来禁止变量值在命令窗口(The Command Windows)的重复。这将大大提高编译的速度。


    好的编程习惯

    如果你在调试程序时需要检测一个语句的结果,可能把句后的分号去掉,这样结果将会出现在命令窗口(The Command Windows)


    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, 2025-11-10 19:48 , Processed in 1.186089 second(s), 50 queries .

    回顶部