matlab最基础教程(二):变量类型与赋值

matlab最基础教程(二):变量类型与赋值

前言:matlab解决问题的最基本思路是建立脚本文件,那么脚本文件的第一段就是定义一些变量,这和C语言等编程思想是一样的。matlab提供的变量类型很多,最基础的是三种:数值变量、符号变量、字符串,其他的类型还有cell、table等。这里仅说明最基础的变量类型。

1.数值变量
matlab中所有的数值变量都是矩阵,赋值时,以方括号作为开头和结尾,以英文逗号或空格分割同行元素,以英文分号分割各列。例如在Command Window里输入
a=[1 2;3 4]
复制代码
可以看到运算结果,a是一个数值变量。同时workspace里出现一个田字形的变量a,说明变量a的类型是数值型。

向量和数字可以视为特殊的矩阵,例如

a=[1 2]
a=[1;2]
复制代码
分别是行向量和列向量,
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]
复制代码
中把行数和列数都用向量表示,就是说对矩阵a的第1和2行,第1和2列,总共4个元素赋值。更进一步,也可以有a([1 2],1)表示a的第一列,也可以写成
a(1:end,1)
复制代码
这里的end表示终点,即a的行数2,也可以更进一步简写成
a(:,1)
复制代码
这里的冒号表示从头至尾。这类赋值方法最为常用,但基本的语法非常简单,方括号表示矩阵开头和结尾,圆括号表示从矩阵中选取部分,把握这个原则,有利于读懂程序。
当然分块矩阵也可以
b=[a a]
复制代码
这样的赋值方法,但需要注意的是,方括号中的元素必须满足矩阵的行列数要求,例如
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中出现相应的变量名,图形不是数值变量的田字形,而是方框里有个立方体,双击后可以看到行列数。

3.字符串
比数值、符号更为简单的就是字符串了,其定义方法是以单引号开头和结尾,例如
a=‘hello world’
复制代码
就定义了一个字符串a,其值为你好世界。matlab中较为特殊的是,字符串可视为行向量,例如
b=‘hello ’
c=‘world’
a=[b c]
复制代码
也可以获得字符串a,其值为你好世界。另外,有时也可以将字符串视为矩阵,例如
a=[‘ab’;‘cd’]
复制代码
但这种用法很罕见,同时要求各行字符串长度一样,否则将违反矩阵行列数规定。
当然字符串的值也可以是特殊符号,比如
‘,’
复制代码
就定义了逗号,而最特殊的就是定义单引号,因为单引号会和字符串定义中的单引号混淆,因此matlab中用两个单引号表示一个单引号,也就是
a=’‘’’
复制代码
表示a是一个字符变量,值是一个单引号。语句中第一和第四个单引号是字符串类型的开头和结尾,中间两个单引号用来表示一个单引号。
定义字符串变量后,workspace中出现相应的变量名,图像是方框里写了ch,双击后可以看到行列数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摸鱼的杰哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值