一. 命令
1.输入命令
(1).可以通过在命令行窗口中 MATLAB 提示符 (>>
) 后输入命令,然后按 Enter 键来执行命令。
例:3*5
>> 3*5 %回车后显示答案
ans =
15
(2).除非另有指定,否则 MATLAB 会将计算结果存储在一个名为 ans
的变量中。
例:将 3*5
的计算结果赋给一个名为 m
的变量
>> m = 3*5
m =
15
(3). MATLAB 中的等号为赋值运算符,表示等号右侧的表达式赋给左侧的变量。因此,当输入 x = 3+4
时,MATLAB 首先会计算 3+4
,然后再将结果 赋给变量 x
。
例:输入m = m + 1,会根据记录中m的值+1后重新赋值给m。
>> m = m + 1
m =
16
工作区窗口(右侧)显示了当前位于工作区中的所有变量。
(4).在命令的末尾添加分号(英文的分号)将抑制输出,但仍会执行该命令。当您输入命令而没有以分号结尾时,MATLAB 将会在命令行窗口中显示结果。
例:输入 k = 8 - 2;
>> k = 8 - 2; %不会显示求得答案,但是会在工作区记录。
(5).可以按键盘上的向上箭头键重新调用以前的命令。请注意,要执行此操作,命令行窗口必须为活动窗口。
(6).当在命令提示符下仅输入变量名称时,MATLAB 将会返回该变量的当前值。例:
>> y
y =
8
2.在变量中存储数据
(1).变量名命名规则:以字母开头,并且仅包含字母、数字和下划线 (_
)。如果您使用无效的变量名称,MATLAB 会显示建议的更正内容。您可以使用建议的命令、对其进行修改或按 Esc 键删除建议。
注意:matlab严格区分大小写
(2).输入clear可以清除所有变量,clc可以清除命令行窗口。
3.使用内置的函数和常量
(1).MATLAB 包含内置的常量,比如pi表示 π。
(2).MATLAB 包含许多内置的函数,例如 abs
(计算绝对值)和 eig
(计算特征值(及把数变为小数点后四位数))。
>> y = sin(pi/2)
y =
1
例:
使用 sqrt
函数计算 -9
的平方根。将结果赋给一个名为 z
的变量。
>> z=sqrt(-9)
z =
0.0000 + 3.0000i
注意:i代表虚数单位,是MATLAB的一个内置常量。
二. 向量和矩阵
1.输入数组
(1).所有 MATLAB 变量都是数组,这意味着每个变量均可以包含多个元素。单个称为标量的数值实际上是一个 1×1 数组,也即它包含 1 行 1 列。
例:创建一个名为 x
并且值为 4 的变量。
>> x = 4
x =
4
(2).可以使用方括号(英文括号)创建包含多个元素的数组。
例:创建一个名为 x
的数组,其中两个元素位于同一行中:7
和 9
。
>> x = [7 9] %一行数组之间可以用空格或者,隔开
x =
7 9
(3).用分号分隔数值时,MATLAB 会创建一个列向量 (n×1)。
例:创建一个名为 x
的数组,其中两个元素位于同一列中:7
和 9
>> x = [7;9]
x =
7
9
(4).可以组合使用空格和分号来创建矩阵,即包含多行多列的数组。输入矩阵时,必须逐行输入它们。
例:试着创建一个名为 x
的矩阵,其中包含的值如下所示。
5 6 7
8 9 10
>> x = [5 6 7; 8 9 10]
x =
5 6 7
8 9 10
(5).在 MATLAB 中,可以在方括号内执行计算。
例:
>> x = [abs(-4) 4^2]
x =
4 16
2.创建等间距向量
(1).我们有时会输入一些这样的数组。
例:
x = [1 2 3]
x =
1 2 3
(2).但是,对于长向量,输入单个数值是不实际的。可用来创建等间距向量的替代便捷方法是使用 :
运算符并仅指定起始值和最终值:first:last。
注意:运算符使用默认的间距 1
例如:上面的案例就可以写为
>> x = 1:3
x =
1 2 3
(3).可以指定自己的间距,如下所示。
>> x = 20:2:26
x =
20 22 24 26
(4).如果知道向量中所需的元素数目(而不是每个元素之间的间距),则可以改用 linspace
函数:linspace(*first*,*last*,*number_of_elements*)
。注意,请使用逗号 (,
) 分隔 linspace
函数的输入。
例:
>> x = linspace(0,1,5)
x =
0 0.250 0.500 0.750 1.000
(5).可以用 ’ 将行向量转换为列向量。
例:
>> x = 1:3;
>> x = x'
x =
1
2
3
(6).综合案例:
在一条命令中创建行向量并将其全部转置来创建列向量。注意此处使用圆括号来指定运算的顺序。
>> x = (1:2:5)'
x =
1
3
5
3.数组创建函数
(1).MATLAB 包含许多函数,可帮助创建常用的矩阵,例如随机数矩阵(rand)。
例:
>> x = rand(2) %rand(2) 命令中的 2 指定输出将为一个 2×2 的随机数矩阵。
x =
0.8147 0.1270
0.9058 0.9134
(2).许多矩阵创建函数允许您输入一个数值来创建方阵 (n×n),或者输入两个数值来创建非方阵。
例:
>> x = rand(2,3)
x =
0.6324 0.2785 0.9575
0.0975 0.5469 0.9649
(3).使用 zeros
函数创建一个包含 6
行 3
列 (6×3) 的全零矩阵。将结果赋给名为 x
的变量。
>> x = zeros(6,3)
x =
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
三.导入数据
(1).可以使用 save
命令将工作区中的变量保存到称为 MAT 文件的 MATLAB 特定格式文件中。
>> save foo x
以上命令将名为 x
的变量保存到名为 foo.mat
的 MAT 文件中。
(2).可以使用 load
命令从 MAT 文件加载变量。
>> load foo %把数据从foo中加载出来
四. 索引和修改数组
1.对数组进行索引
(1).可以使用行、列索引从数组中提取值。
>> x = A(5,7);
此语法将会提取 A
的第 5 行第 7 列的值,然后将结果赋给变量 x
。
(2).可以使用 MATLAB 关键字 end
,作为行或列索引来引用最后一个元素。
>> x = A(end,2);
(3).可以将算术运算与关键字 end
结合使用。例如:
>> x = A(end-1,end-2)
2.提取多个元素
(1).用作索引时,冒号运算符 (:
) 可指代该维度中的所有元素。以下语法
>> x = A(2,:)
会创建一个包含 A
中第 2 行上所有元素的行向量。
(2).冒号运算符可以引用某个值范围。以下语法会创建一个包含矩阵 A
的第 1 行、第 2 行和第 3 行所有元素的矩阵。
>> x = A(1:3,:)
(3).单个索引值可用于引用向量元素。例如,以下语句
>> x = v(3)
会返回向量 v
的第 3 个元素(当 v
为行向量或列向量时)。
(4).单个索引值范围可用于引用向量元素的子集。例如
>> x = v(3:end)
返回向量 v
的一个子集,其中包含从第三个到最后一个元素范围内的所有元素。
3.更改数组中的值
(1).字符来提取整列数据。
例:创建一个名为 v2
并且包含 data
的最后一列元素的向量。
>> v2 = data(:,end)
(2).可以通过组合使用索引与赋值来修改变量的元素。
A(2,5) = 11
例:试着将 v2
中的第一个元素从 NaN
更改为 0.5
。
>> v2(1) = 0.5
例:现在,试着将 data
的第一行最后一列的值更改为 0.5
。
>> data(1,end) = 0.5
五. 数组计算
(1).可以将一个标量值与数组中的所有元素相加。
例:将 2
与 x
的每个元素相加,然后将结果存储在名为 y
的变量中。
>> y = x + 2
(2).可以将任意两个大小相同的数组相加。
例:创建一个向量 z
,它是向量 x
和 y
的和。
>> z = x + y
(3).可以将数组中的所有元素与某个标量相乘或相除。
例:a:创建一个变量 z
,其值为 x
*2
。
**b:**创建一个变量 y
,其值为 x
/3
。
>> z = 2*x
>> y = x/3
(4).MATLAB 中的基本统计函数可应用于某个向量以生成单个输出。可以使用 max
函数来确定向量的最大值。
例:试着创建一个变量 xMax
,其值为 x
向量的最大值。
>> xMax = max(x)
(5).MATLAB 的函数可在单个命令中对整个向量或值数组执行数学运算。
例:使用sqrt函数对x数组进行开方运算。
>> xSqrt = sqrt(x)
**(6)**运算符执行矩阵乘法。因此,如果您使用 *
将两个大小相同的向量相乘,则由于内部维度不一致,将会收到一条错误消息。
>> z = [3 4] * [10 20]
用于矩阵乘法的维度不正确。请检查并确保第一个矩阵中的列数与第二个矩阵中的行数匹配。要执行按元素相乘,请使用 '.*'。
而 .*
运算符执行按元素乘法,允许您将两个大小相同的数组的对应元素相乘。
>> z = [3 4] .* [10 20]
z =
30 80
六.调用函数
(1).size
函数可以应用于数组,以生成包含数组大小的单个输出变量。
例:试着创建一个名为 dsize
的变量,其值为 data
变量的大小。
>> dsize = size(data)
dsize =
7 4
(2).size
函数可以应用于矩阵,以生成单个输出变量或两个输出变量。使用方括号 ( [ ] ) 获取多个输出。
例:创建变量 dr
和 dc
,其中分别包含变量 data
的行数和列数。
>> [dr,dc] =size(data)
dr =
7
dc =
4
(3).可以使用 max
函数确定向量的最大值及其对应的索引值。max
函数的第一个输出为输入向量的最大值。执行带两个输出的调用时,第二个输出为索引值。
>> [xMax,idx] = max(x)
例:创建变量 vMax
和 ivMax
,其中分别包含 v2
向量的最大值和对应的索引值。
>> [vMax,ivMax] = max(v2)
vMax =
10.1570
ivMax =
5
七.获取帮助
(1).可以输入
>> doc fcnName
可以获取任何 MATLAB 函数的相关信息。
例:输入命令 doc randi
以打开 randi
函数的文档页。
八.绘制数据图
1.绘制向量图
(1).可以使用 plot
函数在一张图上绘制两个相同长度的向量。
>> plot(x,y)
例:
>> a = [1:1:50];
>> b = [cos(a)];
>> plot(a,b)
(2).plot
函数接受一个附加参数,该参数让您能够在单引号中使用各种符号来指定颜色、线型和标记样式。
>> plot(x,y,'r--o')
以上命令将会绘制一条红色 (r
) 虚线 (--
),并使用圆圈 (o
) 作为标记。您可以在线条设定的文档中了解有关可用符号的详细信息。
(3).要在一张图上先后绘制两条线,请使用 hold on
命令保留之前的绘图,然后添加另一条线。也可以使用 hold off
命令返回到默认行为。
(4).输入 close all
命令以关闭所有打开的图窗窗口。
(5).单独绘制一个向量时,MATLAB 会使用向量值作为 y 轴数据,并将 x 轴数据的范围设置为从 1
到 n
(向量中的元素数目)。
>> b = [cos(a)];
>> plot(b)
(6).plot
函数接受可选的附加输入,这些输入由一个属性名称和一个关联的值组成。
>> plot(y,'LineWidth',5)
以上命令将绘制一条粗线。
例:试着绘制 b
,线宽为 3
。
plot(b,'LineWidth',3)
(7).使用 plot
函数时,可在绘图参数和线条设定符之后添加属性名称-属性值对组。
>> plot(x,y,'ro-','LineWidth',5)
例:试着绘制 b
(y 轴)对 a
(x 轴)的图,使用红色 (r
) 圆圈 (o
) 标记,线宽为 4
。
plot(a,b,'LineWidth',4)
2.编写绘图注释
(1).可以使用绘图注释函数(例如 title
)在绘图中添加标签。这些函数的输入是一个字符串。MATLAB 中的字符串是用单引号 ('
) 引起来的。
>> title('Plot Title')
(2).使用 ylabel
函数添加y标签 'Hello world'
。
xlabel添加x标签