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,双击后能够看到行列数。