MATLAB基础总结

clear 用于删除工作区变量,clc 用于清除命令行窗口

内置的函数和常量:
pi 表示 π
abs(计算绝对值)和 eig(计算特征值)
sqrt 函数计算 -9 的平方根

手动输入数组:
1、所有 MATLAB 变量都是数组,这意味着每个变量均可以包含多个元素。单个称为标量的数值实际上是一个 1×1 数组,也即它包含 1 行 1 列。
2、用空格(或逗号)分隔数值时,MATLAB 会将这些数值组合为一个行向量,行向量是一个包含一行多列的数组 (1×n)。用分号分隔数值时,MATLAB 会创建一个列向量 (n×1)。
3、可以组合使用空格和分号来创建矩阵,即包含多行多列的数组。输入矩阵时,必须逐行输入它们。
4、在 MATLAB 中,可以在方括号内执行计算。

创建等间距向量:
1、 对于长向量,输入单个数值是不实际的。可用来创建等间距向量的替代便捷方法是使用 : 运算符并仅指定起始值和最终值:first:last。

y = 5:8
y =
5 6 7 8

2、: 运算符使用默认的间距 1,可以指定自己的间距,如下所示。

x = 20:2:26
x =
20 22 24 26

3、如果知道向量中所需的元素数目(而不是每个元素之间的间距),则可以改用 linspace 函
数:linspace(first,last,number_of_elements)。注意,使用逗号 (,) 分隔 linspace 函数的输入。

x = linspace(0,1,5)
x =
0 0.250 0.500 0.750 1.000

4、linspace 和 : 运算符都可创建行向量。但是,您可以使用转置运算符 (’) 将行向量转换为列向量。

x = 1:3;
x = x’
x =
1
2
3

5、可以通过在一条命令中创建行向量并将其全部转置来创建列向量。注意此处使用圆括号来指定运算的顺序。

x = (1:2:5)’
x =
1
3
5

数组创建函数
1、创建常用的矩阵–随机数矩阵。

x = rand(2)
x =
0.8147 0.1270
0.9058 0.9134

注意,rand(2) 命令中的 2 指定输出将为一个 2×2 的随机数矩阵。

2、 许多矩阵创建函数允许输入一个数值来创建方阵 (n×n),或者输入两个数值来创建非方阵。

x = rand(2)
x =
0.8147 0.1270
0.9058 0.9134

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)

保存和加载变量
1、使用 save 命令将工作区中的变量保存到称为 MAT 文件的 MATLAB 特定格式文件中。

save foo x
以上命令将名为 x 的变量保存到名为 foo.mat 的 MAT 文件中。
2、使用 load 命令从 MAT 文件加载变量。

load foo

对数组进行索引
1、可以使用行、列索引从数组中提取值。

x = A(5,7);
此语法将会提取 A 的第 5 行第 7 列的值,然后将结果赋给变量 x。

2、MATLAB 关键字 end,作为行或列索引来引用最后一个元素。

x = A(end,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 的一个子集,其中包含从第三个到最后一个元素范围内的所有元素。

更改数组中的值
1、可以通过组合使用索引与赋值来修改变量的元素。
A(2,5) = 11
2、将 data 的第一行最后一列的值更改为 0.5。

data(1,end) = 0.5

执行数组运算
1、将一个标量值与数组中的所有元素相加。

y = x + 2

2、将任意两个大小相同的数组相加。
>> z = x + y

3、将数组中的所有元素与某个标量相乘或相除。

z = 2*x
y = x/3

4、MATLAB 中的基本统计函数可应用于某个向量以生成单个输出。可以使用 max 函数来确定向量的最大值。
>> xMax = max(x)

5、MATLAB 的函数可在单个命令中对整个向量或值数组执行数学运算。
>> xSqrt = sqrt(x)

6、* 运算符执行矩阵乘法。因此,如果使用 * 将两个大小相同的向量相乘,则由于内部维度不一致,您将会收到一条错误消息。
>> z = [3 4] * [10 20]
用于矩阵乘法的维度不正确。请检查并确保第一个矩阵中的列数与第二个矩阵中的行数匹配。要执行按元素相乘,请使用 ‘.*’。

而 .* 运算符执行按元素乘法,允许将两个大小相同的数组的对应元素相乘。
>> z = [3 4] .* [10 20]
z =
30 80

从函数调用获取多个输出
1、size 函数可以应用于数组,以生成包含数组大小的单个输出变量。
>> s = size(x)

2、size 函数可以应用于矩阵,以生成单个输出变量或两个输出变量。使用方括号 ([ ]) 获取多个输出。

[xrow,xcol] = size(x)

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

[xMax,idx] = max(x)

获取帮助、randi函数
1、可以输入

doc fcnName
以获取任何 MATLAB 函数的相关信息。

2、使用randi 函数创建一个名为 x 的矩阵:
其中包含 1 到 20 范围的随机整数,行数为 5,列数为 7
将数值范围作为第一个输入传递给 randi,后跟行数和列数。
x = randi(20,5,7)

绘制向量图
1、使用 plot 函数在一张图上绘制两个相同长度的向量。

plot(x,y)

2、plot 函数接受一个附加参数,该参数让您能够在单引号中使用各种符号来指定颜色、线型和标记样式。

plot(x,y,‘r–o’)
以上命令将会绘制一条红色 ® 虚线 (–),并使用圆圈 (o) 作为标记。可以在线条设定的文档中了解有关可用符号的详细信息。

3、要在一张图上先后绘制两条线,使用 hold on 命令保留之前的绘图,然后添加另一条线。也可以使用 hold off 命令返回到默认行为。

4、 当单独绘制一个向量时,MATLAB 会使用向量值作为 y 轴数据,并将 x 轴数据的范围设置为从 1 到 n(向量中的元素数目)

5、plot 函数接受可选的附加输入,这些输入由一个属性名称和一个关联的值组成。

plot(y,‘LineWidth’,5)
以上命令将绘制一条粗线。可以在 Line 属性文档中了解更多可用属性的详细信息。

6、使用 plot 函数时,可在绘图参数和线条设定符之后添加属性名称-属性值对组。
>> plot(x,y,‘ro-’,‘LineWidth’,5)

编写绘图注释
可以使用绘图注释函数(例如 title)在绘图中添加标签。这些函数的输入是一个字符串。MATLAB 中的字符串是用单引号 (’) 引起来的。

title(‘Plot Title’) 上侧
或者使用 ylabel 函数添加标签 ‘Density (g/cm^3)’。左侧

运算符
1、关系运算符(例如 >、<、== 和 ~=)执行两个值之间的比较。相等或不相等比较的结果为 1 (true) 或 0 (false)。

2、MATLAB 包含 AND (&) 和 OR (|) 等逻辑运算符,可将多个逻辑条件组合在一起。如果两个元素都为 true,& 运算符将返回 true (1),否则返回 false (0)。例如:

x = (pi > 5) & (0 < 6)
x =
0

3、可以使用逻辑数组作为数组索引,在这种情况下,MATLAB 会提取索引为 true 的数组元素。以下示例将会提取 v1 中大于 6 的所有元素。

v = v1(v1 > 6)
v =
6.6678
9.0698

4、可以使用逻辑索引在数组中重新赋值。例如,如果要将数组 x 中等于 999 的所有值都替换为 0,请使用以下语法。
x(x==999) = 0

if语句
1、每个 if 语句都必须包含一个 if 关键字和一个 end 关键字,只有满足条件时,才会执行 if 和 end 关键字之间的代码。
x = rand;
if x > 0.5
y = 3; %只有 x > 0.5 才会执行
end

2、else 关键字,如下所示。
x = rand;
if x > 0.5
y = 3;
else
y = 4;
end

For 循环
1、for 循环包含单个 end 关键字,与 if 语句类似。

for i = 1:3
disp(i)
end

运行此代码时,for 和 end 关键字之间的代码在该示例中将被执行三次,因为循环计数器 (i) 通过 1:3(1、2 和 3)进行计数。

发布了64 篇原创文章 · 获赞 7 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/Pandade520/article/details/90741083