MATLAB入门

时间:2024-03-10 16:06:16

一. 命令

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 的数组,其中两个元素位于同一行中: 79

>>  x = [7 9] %一行数组之间可以用空格或者,隔开

x =

    7     9

(3).用分号分隔数值时,MATLAB 会创建一个列向量 (n×1)。

例:创建一个名为 x 的数组,其中两个元素位于同一列中: 79

>> 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 函数创建一个包含 63 列 (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).可以将一个标量值与数组中的所有元素相加。

例:将 2x 的每个元素相加,然后将结果存储在名为 y 的变量中。

>> y = x + 2

(2).可以将任意两个大小相同的数组相加。

例:创建一个向量 z,它是向量 xy 的和。

>> 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 函数可以应用于矩阵,以生成单个输出变量或两个输出变量。使用方括号 ( [ ] ) 获取多个输出。

例:创建变量 drdc,其中分别包含变量 data 的行数和列数。

>> [dr,dc] =size(data)

dr =

    7


dc =

    4

(3).可以使用 max 函数确定向量的最大值及其对应的索引值。max 函数的第一个输出为输入向量的最大值。执行带两个输出的调用时,第二个输出为索引值。

>> [xMax,idx] = max(x)

例:创建变量 vMaxivMax,其中分别包含 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 轴数据的范围设置为从 1n(向量中的元素数目)。

>> 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标签