每篇一句
你所做的事情,也行暂时看不到成功,但不要灰心,你并不是没有成长,而是在扎根.
前情提要
本篇文章将会分多次发放(原因内容太长,导致写的是否微信卡崩了🙃), 目的在于从基础的Matlab的教程开始慢慢的深入. 如果大家看到该文章有些格式上的错误或内容上的错误, 欢迎评论指正.
Matlab基础入门
在MATLAB中使用分号;
分号;
表示结束语句
如果要
抑制
和隐藏表达式
的MATLAB输出
,请在表达式后添加
分号
添加注释
百分比符号%
用于指示注释行
x = 9 % assign the value 9 to x
MATLAB还可以使用块注释运算符
%{
和%}
编写 一段注释 .
常用的运算符和特殊字符
运算符 | 使用说明 |
---|---|
+ |
相加; 加法运算符 |
- |
相减; 减法运算符 |
* |
标量和矩阵乘法运算符 |
.* |
阵列乘法运算符 |
^ |
标量和矩阵求幂运算符 |
.^ |
阵列求幂运算符 |
\ |
左除法运算符 |
/ |
右除法运算符 |
.\ |
阵列左除法运算符 |
./ |
右除法运算符 |
: |
冒号; 生成规则间隔的元素,并表示整个行或列 |
( ) |
括号; 包含函数参数和数组索引; 覆盖优先级 |
[ ] |
括号; 罩住阵列元素 |
. |
小数点 |
… |
省略号; 行连续运算符 |
, |
逗号; 分隔一行中的语句和元素 |
; |
分号; 分隔列并抑制输出显示 |
% |
百分号;指定一个注释并指定格式 |
_ |
引用符号和转置运算符 |
._ |
非共轭转置运算符 |
= |
赋值运算符 |
特殊变量和常数
名称 | 含义 |
---|---|
ans |
最近的回应/回答 |
eps |
浮点精度精度 |
pi |
数字π
|
Inf |
∞ |
i , j
|
虚构单位√-1
|
.Nan |
未定义的数值结果,非数字
|
保存工作
save
命令用于在工作空间中保存所有变量
,它在当前目录中,以.mat
作为扩展名的文件。
save mymat
可以随时使用load
命令重新加载文件
load mymat
变量历史
who
命令显示使用过的所有变量名
>> who
您的变量为:
ans x y
whos
命令更多地显示变量
- 当前在内存中的变量
- 每个变量的类型
- 每个变量的内存分配
- 是否是复合的变量
执行结果如下
>> whos
Name Size Bytes Class Attributes
ans 1x1 8 double
x 1x1 8 double
y 1x1 8 double
清除命令
从存储器中删除所有(或指定的)变量
clear x % it will delete x, won't display anything
clear % it will delete all variables in the workspace
% peacefully and unobtrusively
长任务
-
长任务可以通过使用省略号
...
扩展到另一行
initial_velocity = 0;
acceleration = 9.8;
time = 20;
final_velocity = initial_velocity ...
+ acceleration * time
等价于
initial_velocity = 0;
acceleration = 9.8;
time = 20;
final_velocity = initial_velocity + acceleration * time
格式命令
默认情况下,MATLAB显示四位小数位数。这称为:短格式。但是,如果要更精确,则需要使用format
命令。format long
命令显示十进制后的16位数字。
>> format long
>> x = 7 + 10/3 + 5 ^ 1.2
x =
17.231981640639408
>> format long
>> x = 7 + 10/3 + 5 ^ 1.2
x =
17.2320
format bank
命令将数字舍入到小数点后两位
>> format bank
>> daily_wage = 177.45;
>> weekly_wage = daily_wage * 6
weekly_wage =
1064.70
MATLAB使用指数符号显示大数字。
format short e
命令以指数形式显示四位小数加上指数。
>> format short e
>> 4.678 * 4.9
ans =
2.2922e+01
format long e
命令允许以指数形式显示十六位小数加上指数
>> format long e
>> x = pi
x =
3.141592653589793e+00
format rat
命令给出计算结果最接近的合理表达式
>> format rat
>> 4.678 * 4.9
ans =
2063/90
创建向量
-
向量是数字的一维数组, MATLAB允许创建两种类型的向量:
- 行向量
- 列向量
行向量是通过用方括号中的元素集合来创建的,使用
空格
或逗号
分隔元素
>> a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>> % 等价 a = [1 2 3 4 5 6 7 8 9]
a =
1 2 3 4 5 6 7 8 9
计算相加
>> r = [7 8 9 10 11];
>> t = [2, 3, 4, 5, 6];
>> result = r + t
result =
9 11 13 15 17
-
列向量通过用方括号中的元素集合来创建,使用分号
;
来分隔元素
>> c = [7; 8; 9; 10; 11]
c =
7
8
9
10
11
创建矩阵
矩阵是数字的二维数组
在MATLAB中,通过将每行作为一系列或
,
分隔的元素输入矩阵,并以;
分隔一行。
创建一个
3x3
的矩阵:
>> m = [1 2 3; 4 5 6; 7 8 9]
m =
1 2 3
4 5 6
7 8 9
管理会话的命令
命令 | 描述说明 |
---|---|
clc |
清除命令窗口 |
clear |
从内存中删除变量 |
exist |
检查文件或变量是否存在 |
global |
声明变量为全局变量 |
help |
搜索帮助主题 |
lookfor |
搜索帮助关键字的条目 |
quit |
停止MATLAB |
who |
列出当前变量 |
whos |
列出当前变量(长显示详细信息) |
使用系统命令
MATLAB提供了各种有用的命令来处理系统, 它还为其他系统相关活动提供各种命令
下表显示了一些常用的系统相关命令
命令 | 描述说明 |
---|---|
cd |
更改当前目录(进入指定目录) |
date |
显示当前日期 |
delete |
删除文件 |
diary |
打开/关闭日记文件记录 |
dir |
列出当前目录下的所有文件 |
load |
从文件加载工作区变量 |
path |
显示搜索路径 |
pwd |
显示当前目录 |
save |
将工作空间变量保存在文件中 |
type |
显示文件的内容 |
what |
列出当前目录中的所有MATLAB文件 |
wklread |
读取.wk1 电子表格文件 |
输入和输出命令
MATLAB提供以下输入和输出相关命令
命令 | 描述说明 |
---|---|
disp |
显示数组或字符串的内容 |
fscanf |
从文件读取格式化数据 |
format |
控制屏幕显示格式 |
fprintf |
对屏幕或文件执行格式化的写入 |
input |
显示提示并等待输入 |
; |
禁止打印显示 |
fscanf
和fprintf
命令的行为类似于C语言中的scanf
和printf
函数。它们支持以下格式代码
命令 | 描述说明 |
---|---|
%s |
格式化为字符串 |
%d |
格式化为字符串整数值 |
%f |
格式化为浮点值 |
%e |
格式化为科学记数法的浮点值 |
%g |
格式最紧凑的形式:%f 或%e 。 |
\n |
在输出字符串中插入一个换行 |
\t |
在输出字符串中插入制表符 |
格式化
format
函数具有以下用于数字显示的形式
命令 | 描述说明 |
---|---|
format short |
4位十进制数(默认) |
format long |
16位数字 |
format short e |
5位数加上指数 |
format long e |
16位加上指数 |
format bank |
两位十进制数字 |
format + |
正,负或零 |
format rat |
有理近似 |
format compact |
禁止一些换行符 |
format loose |
重置为较不紧凑的显示模式 |
向量,矩阵和数组命令
下表显示了用于处理数组,矩阵和向量的各种命令
命令 | 描述说明 |
---|---|
cat |
连接数组 |
find |
查找非零元素的索引 |
length |
计算元素数量 |
linspace |
创建规则间隔的向量 |
logspace |
创建对数间隔向量 |
max |
返回最大的元素 |
min |
返回最小的元素 |
prod |
产生的每列 |
reshape |
改变大小 |
size |
计算数组大小 |
sort |
对每列进行排序 |
sum |
对每列进行求和 |
eye |
创建一个单位矩阵 |
ones |
创建一个数组 |
zeros |
创建一个零的数组 |
cross |
计算矩阵交叉积 |
dot |
计算矩阵点积 |
det |
计算数组的行列式 |
inv |
计算矩阵的倒数 |
pinv |
计算矩阵的伪逆 |
rank |
计算矩阵的秩 |
rref |
计算简化行阶梯形式 |
cell |
创建单元格数组 |
celldisp |
显示单元格数组 |
cellplot |
显示单元格阵列的图形表示 |
num2cell |
将数组转换为单元格数组 |
deal |
匹配输入和输出列表 |
iscell |
识别单元格数组 |
绘图命令
MATLAB提供了许多用于绘制图形的命令。下表显示了一些常用的绘图命令
命令 | 描述说明 |
---|---|
axis |
设置轴限制 |
fplot |
智能绘图功能 |
grid |
显示网格线 |
plot |
生成xy 坐标图 |
print |
打印或绘图到文件 |
title |
在文字的顶部放置文字 |
xlabel |
将文本标签添加到x 轴 |
ylabel |
将文本标签添加到y 轴 |
axes |
创建轴对象 |
close |
关闭当前坐标图 |
close all |
关闭所有坐标图 |
figure |
打开一个新的图形窗口 |
gtext |
通过鼠标启用标签放置 |
hold |
冻结当前坐标图 |
legend |
通过鼠标图例位置 |
refresh |
重新绘制当前图形窗口 |
set |
指定诸如轴的对象的属性 |
subplot |
在子窗口中创建图 |
text |
在图开放置字符串 |
bar |
创建条形图 |
loglog |
创建日志记录图 |
polar |
创建极坐标图 |
semilogx |
创建半标记图(对数横坐标) |
semilogy |
创建半标记图(对数纵坐标) |
stairs |
创建梯形图 |
stem |
创建茎图 |
.M文件
MATLAB允许编写两种程序文件
-
脚本
- 脚本文件是以
.m
扩展名的程序文件 - 在这些文件中,可以编写一系列要一起执行的命令
- 脚本不接受输入,不返回任何输出
- 它们对工作空间中的数据进行操作
- 脚本文件是以
-
函数
- 函数文件也是扩展名为
.m
的程序文件。函数可以接受输入和返回输出 - 内部变量是函数的局部变量
- 函数文件也是扩展名为
要创建脚本文件,需要使用文本编辑器。可以通过两种方式打开MATLAB编辑器:
- 使用命令提示符
- 使用IDE
- 如果使用命令提示符,请在命令提示符下键入
edit
并回车,这将打开编辑器 - 可以直接键入
edit
,然后直接输入文件名(扩展名为.m
)
edit
%或者
edit newfile.m
上述命令将在默认的MATLAB目录中创建该文件。如果要将所有程序文件存储在特定文件夹
中,则必须提供整个路径
在命令行中也可以创建文件夹,如:创建一个名为worksplace
的文件夹。在命令提示符下键入以下命令>>
mkdir worksplace % create directory progs under default directory
chdir worksplace % changing the current directory to progs
edit worksplace.m % creating an m file named prog1.m
如果使用IDE,请选择新建 -> 脚本
。 这也打开编辑器并创建一个名为Untitled的文件。在输入代码后命名并保存文件。
在编辑器中键入以下代码 -
NoOfStudents = 6000;
TeachingStaff = 150;
NonTeachingStaff = 20;
Total = NoOfStudents + TeachingStaff ...
+ NonTeachingStaff;
disp(Total);
创建并保存文件后,可以通过两种方式运行
- 单击编辑器窗口上的
运行
按钮 - 只需在命令提示符下键入文件名(无扩展名)即可:>> worksplace
MATLAB数据类型
MATLAB提供15
种基本数据类型。每种数据类型存储矩阵或数组形式的数据。矩阵或数组的最小值是0
到0
,并且是可以到任何大小的矩阵或数组
下表显示了MATLAB中最常用的数据类型
数据类型 | 描述 |
---|---|
int8 |
8 位有符号整数 |
uint8 |
8 位无符号整数 |
int16 |
16 位有符号整数 |
uint16 |
16 位无符号整数 |
int32 |
32 位有符号整数 |
uint32 |
32 位无符号整数 |
int64 |
64 位有符号整数 |
uint64 |
64 位无符号整数 |
single |
单精度数值数据 |
double |
双精度数值数据 |
logical |
逻辑值为1 或0 ,分别代表true 和false
|
char |
字符数据(字符串作为字符向量存储) |
单元格阵列 | 索引单元阵列,每个都能够存储不同维数和数据类型的数组 |
结构体 | C型结构,每个结构具有能够存储不同维数和数据类型的数组的命名字段 |
函数处理 | 指向一个函数的指针 |
用户类 | 用户定义的类构造的对象 |
Java类 | 从Java类构造的对象 |
示例
>> str = 'Hello World!'
>> n = 2345
>> d = double(n)
>> un = uint32(789.50)
>> rn = 5678.92347
>> c = int32(rn)
str =
'Hello World!'
n =
2345
d =
2345
un =
uint32
790
rn =
5.6789e+03
c =
int32
5679
数据类型转换
MATLAB提供了各种用于将一种数据类型转换为另一种数据类型的函数
函数 | 描述说明 |
---|---|
char |
转换为字符数组(字符串) |
int2str |
将整数数据转换为字符串 |
mat2str |
将矩阵转换为字符串 |
num2str |
将数字转换为字符串 |
str2double |
将字符串转换为双精度值 |
str2num |
将字符串转换为数字 |
native2unicode |
将数字字节转换为Unicode字符 |
unicode2native |
将Unicode字符转换为数字字节 |
base2dec |
将基数N字符串转换为十进制数 |
bin2dec |
将二进制数字串转换为十进制数 |
dec2base |
将十进制转换为字符串中的N数字 |
dec2bin |
将十进制转换为字符串中的二进制数 |
dec2hex |
将十进制转换为十六进制数字 |
hex2dec |
将十六进制数字字符串转换为十进制数 |
hex2num |
将十六进制数字字符串转换为双精度数字 |
num2hex |
将单数转换为IEEE十六进制字符串 |
cell2mat |
将单元格数组转换为数组 |
cell2struct |
将单元格数组转换为结构数组 |
cellstr |
从字符数组创建字符串数组 |
mat2cell |
将数组转换为具有潜在不同大小的单元格的单元阵列 |
num2cell |
将数组转换为具有一致大小的单元格的单元阵列 |
struct2cell |
将结构转换为单元格数组 |
数据类型确定
MATLAB提供了用于识别变量数据类型的各种函数。
函数 | 描述说明 |
---|---|
is |
检测状态 |
isa |
确定输入是否是指定类的对象 |
iscell |
确定输入是单元格数组 |
iscellstr |
确定输入是字符串的单元格数组 |
ischar |
确定项目是否是字符数组 |
isfield |
确定输入是否是结构数组字段 |
isfloat |
确定输入是否为浮点数组 |
ishghandle |
确定是否用于处理图形对象句柄 |
isinteger |
确定输入是否为整数数组 |
isjava |
确定输入是否为Java对象 |
islogical |
确定输入是否为逻辑数组 |
isnumeric |
确定输入是否是数字数组 |
isobject |
确定输入是否为MATLAB对象 |
isreal |
检查输入是否为实数数组 |
isscalar |
确定输入是否为标量 |
isstr |
确定输入是否是字符数组 |
isstruct |
确定输入是否是结构数组 |
isvector |
确定输入是否为向量 |
class |
确定对象的类 |
validateattributes |
检查数组的有效性 |
whos |
在工作区中列出变量,其大小和类型 |
示例
使用以下代码创建脚本文件
x = 3
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
x = 23.54
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
x = [1 2 3]
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
x = 'Hello'
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
result is
x = 3
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x = 23.5400
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x =
1 2 3
ans = 0
ans = 1
ans = 1
ans = 0
x = 'Hello'
ans = 0
ans = 0
ans = 1
ans = 0
ans = 0
MATLAB中的运算符
既可用于标量数据也可用于非标量数据
MATLAB允许以下类型的基本操作
- 算术运算符
- 关系运算符
- 逻辑运算符
- 按位运算符
- 集合运算符
算术运算符
MATLAB允许两种不同类型的算术运算
- 矩阵算术运算
- 数组算术运算
- 矩阵算术运算与线性代数中定义的相同
- 在一维和多维数组中,逐个元素执行数组运算
- 矩阵运算符和数组运算符由句点符号
.
区分
然而,由于对于矩阵和阵列的加减运算是相同的,因此对于这两种情况,运算符相同
运算符 | 描述说明 |
---|---|
+ |
加法或一元加法运算。A + B 表示相加存储在变量A 和B 中的值。A 和B 必须具有相同的大小,除非是标量。 标量可以添加到任何大小的矩阵。 |
- |
减法或一元减法运算。 A-B 表示从A 中减去B 的值。A 和B 必须具有相同的大小,除非是标量。可以从任何大小的矩阵中减去标量。 |
* |
矩阵乘法。 C = A * B 是矩阵A 和B 的线性代数乘积。更准确地说,执行公式:A 和B ,A 的列数必须等于B 的行数。标量可以乘以任何大小的矩阵。 |
.* |
阵列乘法。 A .* B 是数组A 和B 的逐个元素乘积。A 和B 必须具有相同的大小,除非它们之一是标量。 |
/ |
数组乘法。A .* B 是数组A 和B 的逐个元素乘积。A 和B 必须具有相同的大小,除非它们之一是标量。 |
./ |
数组右除。A./B 是具有元素A(i,j)/ B(i,j) 的矩阵。 A 和B 必须具有相同的大小,除非它们之一是标量。 |
\ |
反斜杠或数组左除。如果A 是一个方阵,A \ B 与inv(A)* B 大致相同,除了以不同的方式计算。如果A 是n×n 矩阵,B 是具有n 个分量的列向量或具有若干这样的列的矩阵,则X = A \ B 是方程AX = B 的解。如果A是不规则或几乎单数,将显示警告消息。 |
.\ |
阵列左除。A .\ B 是具有元素B(i,j)/ A(i,j) 的矩阵。A 和B 必须具有相同的大小,除非它们之一是标量。 |
^ |
矩阵 X ^ p 是X 的P 次幂,如果p 是标量。 如果p 是整数,则通过重复平方来计算幂值。 如果整数为负,则X 首先倒置。 对于p 的其他值,计算涉及特征值和特征向量,使得如果[V,D] = eig(X) ,则X ^ p = V * D. ^ p / V 。 |
.^ |
阵列幂值, A ^ B 是B(i,j) 到A(i,j) 的幂矩阵。A 和B 必须具有相同的大小,除非它们之一是标量。 |
' |
矩阵转置。 ' 是A 的线性代数转置。对于复数矩阵,这是复共轭转置。 |
.' |
数组转置。.' 是A 的数组转置。对于复数矩阵,这不涉及共轭。 |
示例
以下示例显示了算术运算符对标量数据的使用。使用以下代码创建脚本文件
a = 10;
b = 20;
c = a + b
d = a - b
e = a * b
f = a / b
g = a \ b
x = 7;
y = 3;
z = x ^ y
运行文件时,会产生以下结果
c = 30
d = -10
e = 200
f = 0.50000
g = 2
z = 343
关系运算符
关系运算符也可以用于标量和非标量数据。数组的关系运算符在两个数组之间执行逐个元素的比较,并返回相同大小的逻辑数组,如果为真,则元素设置为逻辑1(true)
,如果为假,则元素设置为逻辑0(false)
。
操作符 | 函数 | 说明描述 |
---|---|---|
< |
lt() |
小于 |
<= |
le() |
小于或等于 |
> |
gt() |
大于 |
>= |
ge() |
大于或等于 |
== |
eq() |
等于 |
~= |
ne() |
不等于 |
a = 100;
b = 200;
if (a >= b)
max = a
else
max = b
end
result is:
max = 200
除了上述关系运算符之外,MATLAB还提供以下用于相同目的的函数
函数 | 描述 |
---|---|
eq(a, b) |
测试a 是否等于b
|
ge(a, b) |
测试a 是否大于或等于b
|
gt(a, b) |
测试a 是否大于b
|
le(a, b) |
测试a 是否小于或等于b
|
lt(a, b) |
测试a 是否小于b
|
ne(a, b) |
测试a 是否不等于b
|
isequal |
测试数组以获得相等性 |
isequaln |
测试数组相等,将NaN 值视为相等 |
% comparing two values
a = 100;
b = 200;
if (ge(a,b))
max = a
else
max = b
end
% comparing two different values
a = 340;
b = 520;
if (le(a, b))
disp(' a is either less than or equal to b')
else
disp(' a is greater than b')
end
result is
max = 200
a is either less than or equal to b
逻辑运算符
MATLAB提供两种类型的逻辑运算符和函数:
- 逐元素 - 这些运算符对逻辑阵列的相应元素进行操作。
- 短路 - 这些运算符在标量和逻辑表达式上运行。
元素逻辑运算符在逻辑数组上运行逐个元素。符号&
,|
和〜
是逻辑数组运算符AND
,OR
和NOT
。
短路逻辑运算符允许逻辑运算短路。符号&&
和||
是逻辑短路运算符AND
和OR
a = 5;
b = 20;
if ( a && b )
disp('Line 1 - Condition is true');
end
if ( a || b )
disp('Line 2 - Condition is true');
end
% lets change the value of a and b
a = 0;
b = 10;
if ( a && b )
disp('Line 3 - Condition is true');
else
disp('Line 3 - Condition is not true');
end
if (~(a && b))
disp('Line 4 - Condition is true');
end
Line 1 - Condition is true
Line 2 - Condition is true
Line 3 - Condition is not true
Line 4 - Condition is true
位运算
按位运算符对位执行,并执行逐位运算。&
,|
和^
的真值表如下
p |
q |
p&q |
p或q |
p^q |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
由于我使用的是markdown的语法写的文章,而又因为表格与|
冲突,因此用或
代替|
.
假设A = 60
和B = 13
现在以二进制格式,它们将如下所示:
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
MATLAB提供了诸如按位与
和按位或
以及按位非
操作,移位操作等位操作的各种功能。
下表显示了常用的按位操作:
方法 | 目的 |
---|---|
bitand(a, b) |
整数a 和b 的位与AND 操作 |
bitcmp(a) |
a 的比特补码 |
bitget(a,pos) |
在整数数组a 中,获取指定的位置pos 位字节 |
bitor(a, b) |
整数a 和b 的逐位OR 操作 |
bitset(a, pos) |
设置在指定pos 处的位字节 |
bitshift(a, k) |
返回向左移位k 字节,相当于乘以2^k 。 k 的负值对应于向右移位或除以2^k, 并舍入到最接近的整数到负无穷大。任何溢出位都被截断 |
bitxor(a, b) |
整数a 和b 的逐字节位XOR 操作 |
swapbytes |
交换字节排序 |
a = 60; % 60 = 0011 1100
b = 13; % 13 = 0000 1101
c = bitand(a, b) % 12 = 0000 1100
c = bitor(a, b) % 61 = 0011 1101
c = bitxor(a, b) % 49 = 0011 0001
c = bitshift(a, 2) % 240 = 1111 0000
c = bitshift(a,-2) % 15 = 0000 1111
result is
c = 12
c = 61
c = 49
c = 240
c = 15
集合操作
MATLAB为集合操作提供了各种功能,如联合,交集和集合成员的测试等。
函数 | 描述 |
---|---|
intersect(A,B) |
设置两个阵列的交集; 也就是返回A 和B 共同的值。返回的值按排序顺序排列。 |
intersect(A,B,’rows’) |
将A 的每一行和B 的每一行视为单个实体,并返回A 和B 两者共同的行。返回矩阵的行按排序顺序排列。 |
ismember(A,B) |
返回与A 相同大小的数组,其中包含1(true) ,其中A 的元素位于B 中。其他地方返回0(false) 。 |
ismember(A,B,’rows’) |
将A 的每行和B 的每一行视为单个实体,并返回一个包含1(true) 的向量,其中矩阵A 的行也是B 行。其他返回0(false) 。 |
issorted(A) |
如果A 的元素按排序顺序返回逻辑1 (真),否则返回逻辑0 (假)。输入A 可以是一个向量,也可以是N-by-1 或1-by-N 的字符串数组。 如果A 和sort(A) 的输出相等,则认为A 被排序。 |
issorted(A, ‘rows’) |
如果二维矩阵A 的行按排序顺序返回逻辑1 (真),否则返回逻辑0 (假)。 如果A 和排序(A) 的输出相等,则认为矩阵A 被排序。 |
setdiff(A,B) |
设置两个数组的差异; 返回A 中不在B 中的值。返回的数组中的值按排序顺序排列。 |
setdiff(A,B,’rows’) |
将A 的每一行和B 的每一行视为单个实体,并从不在B 中的A 返回行。返回的矩阵的行按排序顺序排列。'rows' 选项不支持单元格数组。 |
setxor |
设置两个数组的异或 |
union |
设置两个数组的并集 |
unique |
使数组中的值唯一 |
下期将会进入令人激动的基本的决策语句, 并会介绍Matlab的矩阵包括它们的用法.
References
https://www.yiibai.com/matlab/matlab_syntax.html
本人借鉴以上网站,并对每一个案例进行测试以及改正; 并且希望通过这几篇文章使查阅matlab资料不在如此麻烦,有一个统一的整理, 轻松学习matlab.
另外,欢迎大家关注我们的微信公众号浮生有雨秃头路
.