MATLAB:变量类型与赋值

1.数值变量
      MATLAB中所有的数值变量都是矩阵,赋值时,以方括号作为开头和结尾,以英文逗号或空格分割同行元素,以英文分号分割各列。例如在Command Window里输入

a= [1 2;3 4]

 

可以看到运算结果,a是一个数值变量。同时workspace里出现一个田字形的变量a,说明变量a的类型是数值型。
0585742798e04948833be8f473aed36d.png
    向量和数字可以视为特殊的矩阵,例如,以下。分别是行向量和列向量,

 

  1. a= [1 2]
  2. a= [1;2]

f154ce35869242e7949e83c7eafaa12d.png

 

a= [1]  可以简写为   a=1  是数字。


    数值变量的命名要求是英文字母开头,不能包含特殊符号,大小写敏感。这里推荐采用下划线来进行分割,例如value_of_A,这和其他编程语言的命名规则大体相当。
    赋值中,有时需要用到等差数列,例如定义一个向量a=[1 2 3],如果比较长,赋值很麻烦,所以  MATLAB提供了一个简单的方法。
a= [1:1:3]      两个冒号的意思是[初始值:步长:终值]。

当步长为1时,可以省略步长和一个冒号,于是可以简写为  a=1:3

  另一种灵活的赋值方法是分块矩阵,其方法是变量名后面加圆括号,圆括号中加序号。例如

a= [1 2;3 4]

 

定义变量a之后,
 

b=a (1,2)

 

就可以把a的第一行第二列元素赋值给b,当然也可以用
 

a(1,2)=1

 

来修改矩阵中部分元素的值。这里需要注意,序号必须是自然数,且不能是零。当矩阵中有多个元素需要赋值时,可以将序号部分改成向量,

例如a ([1 2],[1 2])=[1 2;3 4] adeef84d7bbf454f99f0ad7c4c4ecbd9.png

把行数和列数都用向量表示,就是说对矩阵a的第1和2行,第1和2列,总共4个元素赋值。也可以有a([1 2],1)表示a的第一列,也可以写成               a(1:end,1)

这里的end表示终点,即a的行数2,也可以更进一步简写成         a(:,1)

这里的冒号表示从头至尾。这类赋值方法最为常用,但基本的语法非常简单,方括号表示矩阵开头和结尾,圆括号表示从矩阵中选取部分,把握这个原则,有利于读懂程序。
    当然分块矩阵也可以        b=[a a]

 

4b3fd9952aa7483eb9ab45dfb7dc3de6.png

这样的赋值方法,但需要注意的是,方括号中的元素必须满足矩阵的行列数要求,例如

a= [1 1]

b= [1;1]

c= [a b]

 

就会引起错误,因为此时  MATLAB无法确定c的行列数。
2.符号变量
    总体而言,符号变量比数值变量简单得多,因为变化非常少,常用的赋值命令是

syms a b

这里syms表示这里要定义一些符号变量,a和b是变量名,符号变量的命名规则和数值变量一样。有时候也采用

syms a real

来强调a是实数变量,具体可以

doc syms            来获得帮助。
    有些变量之间存在依赖关系,此时可以定义
              syms x y(x)

这里声明x是一个符号变量,又声明y是一个符号变量,且y的值由x决定,这相当于数学中函数的概念。当然具体的函数关系并没有明确规定。也可以

syms x y z(x,y)

来定义符号变量z,z依赖x和y。这相当于二元函数的概念。这里的圆括号显然和数值变量中的圆括号含义完全不同,这也是学习  MATLAB最不习惯的地方,同一个符号,由于变量类型不同会有完全不同的含义。所以在学习  MATLAB的过程中,一定要区分数值变量和符号变量。
    上述方法定义的符号变量是一个数,或者1*1矩阵,  MATLAB中也可以定义符号矩阵,例如

syms a11 a12 a21 a22

A=[a11 a12;a21 a22]

 

就可以获得一个矩阵符号变量A。
    定义符号变量后,workspace中出现相应的变量名,图形不是数值变量的田字形,而是方框里有个立方体,双击后可以看到行列数。
3443d1fbef5d4ee79fe7204da0c9815b.png

3.字符串
    比数值、符号更为简单的就是字符串了,其定义方法是以单引号开头和结尾,例如

a='hello world'

cc353a495b50453bac625a23a9ae37cb.png就定义了一个字符串a。 MATLAB中,字符串可视为行向量,例如

b='hello '

c='world'

a= [b c]

 

也可以获得字符串a,有时也可以将字符串视为矩阵,

例如

a=['ab';'cd']

d8d57f96f5be4c15abde500ee703eab8.png

 

 

 

 

 

但这种用法很罕见,同时要求各行字符串长度一样,否则将违反矩阵行列数规定。
当然字符串的值也可以是特殊符号,比如

  1. ','

就定义了逗号,而最特殊的就是定义单引号,因为单引号会和字符串定义中的单引号混淆,因此  MATLAB中用两个单引号表示一个单引号,也就是

  1. a=''''

表示a是一个字符变量,值是一个单引号。语句中第一和第四个单引号是字符串类型的开头和结尾,中间两个单引号用来表示一个单引号。
    定义字符串变量后,workspace中出现相应的变量名,图像是方框里写了ch,双击后可以看到行列数。

 

 

 

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值