MATLAB常用命令、函数与运算(自学笔记1)
笔者正在学习matlab的m函数,本文为学习笔记的其中之一。
本文主要介绍MATLAB中常用的命令、函数和运算。
文章目录
- MATLAB常用命令、函数与运算(自学笔记1)
- 命令
- clear
- close
- clc
- pause
- 变量
- 函数
- floor
- round
- mean
- find
- single()
- ones()
- 算术运算
- 数组乘法 .*
- 矩阵乘法 *
- '(共轭转置)和.'(数组转置)
- ( : )
- (m1:n1, m2:n2)
命令
clear
clear函数用于清除base空间中的变量。
close
关闭窗口
close all %删除所有句柄没有被隐藏的绘图窗口
clc
清除命令窗口中的数据,当命令窗口输入该函数后,窗口会清空。
pause
程序暂停指令,其用法如下
>> pause(0.3) %程序暂停运行0.3秒
>> pause %程序暂停,点击任意按键继续
变量
变量可以是数组或矩阵。(单独的一个数字是一个1*1的矩阵)。
变量的声明和赋值比较简单,如下所示
>> a = 1 %声明
a =
1
>> b = 2
b =
2
>> b = a %赋值
b =
2
>> c = [1, 2, 3] %1*3的矩阵
c =
1 2 3
>> c1 = [1 2 3] %1*3的矩阵
c1 =
1 2 3
>> d = [1; 2; 3] %3*1的矩阵
d =
1
2
3
>> e = [1 2 3; 4 5 6; 7 8 9] %3*3的矩阵
e =
1 2 3
4 5 6
7 8 9
函数
floor
用于取小于该变量的最小整数。
>> a = 1.2
>> b = 1.9
>> floor(a)
ans =
1
>> floor(b)
ans =
1
round
四舍五入取整。
>> a=3.2456
a =
3.2456
>> round(a) %取整
ans =
3
>> round(a,1) %取整,保留小数点后1位
ans =
3.2000
>> round(a,2) %取整,保留小数点后2位
ans =
3.2500
mean
求平均值函数,其使用方法如下
>> A = [1 2 3] %1*3矩阵
A =
1 2 3
>> mean(A) %求平均值
ans =
2
>> A = [1 2 3; 4 5 6] %2*3矩阵
A =
1 2 3
4 5 6
>> mean(A) %求平均值
ans =
2.5000 3.5000 4.5000
>> mean(A,1) %求列平均值
ans =
2.5000 3.5000 4.5000
>> mean(A,2) %求行平均值
ans =
2
5
find
查找元素的位置,使用示例如下
>> A = [0 1 2 3 4 3] %1*4矩阵
A =
0 1 2 3 4 3
>> find(A) %查找1*4矩阵中非零元素的位置
ans =
2 3 4 5 6
>> find(A>2) %查找1*4矩阵中大于2的元素的位置
ans =
4 5 6
>> find(A,2) %查找1*4矩阵中非零元素的位置,并返回前2个的位置
ans =
2 3
>> find(A,1,'first') %查找1*4矩阵中非零元素的位置,并返回第1个的位置
ans =
2
>> find(A>2,1,'last') %查找1*4矩阵中大于2的元素的位置,并返回最后1个的位置
ans =
6
>> A = [1 3 4 6 0; 0 2 0 3 4; 3 1 6 0 2] %3*5矩阵
A =
1 3 4 6 0
0 2 0 3 4
3 1 6 0 2
>> find(A) %查找3*5矩阵中非零元素的位置
ans =
1
3
4
5
6
7
9
10
11
14
15
>> [a1,a2] = find(A) %返回非零元素所在的行和列
a1 =
1
3
1
2
3
1
3
1
2
2
3
a2 =
1
1
2
2
2
3
3
4
4
5
5
>> [a1,a2,v] = find(A) %返回非零元素所在的行和列,并将元素保存到V中
%若括号中为判断语句(A>2),则将判断结果保存到V中
a1 =
1
3
1
2
3
1
3
1
2
2
3
a2 =
1
1
2
2
2
3
3
4
4
5
5
v =
1
3
3
2
1
4
6
6
3
4
2
single()
该函数用于将矩阵转换为single类型。
double数据类型占8个字节,single类型占4个字节。使用single类型的矩阵运算时间是double类型的一半。
ones()
创建全部为 1 的数组。
语法
X = ones
X = ones(n)
X = ones(sz1,...,szN)
X = ones(sz)
X = ones(___,typename)
X = ones(___,'like',p)
说明
- X = ones 返回标量 1。
- X = ones(n) 返回一个 n×n 的全 1 矩阵。
- X = ones(sz1,…,szN) 返回由 1 组成的 sz1×…×szN 数组,其中 sz1,…,szN 指示每个维度的大小。例如,ones(2,3) 返回由 1 组成的 2×3 数组。
- X = ones(sz) 返回一个由 1 组成的数组,其中大小向量 sz 定义 size(X)。例如,ones([2,3]) 返回由 1 组成的 2×3 数组。
- X = ones(___,typename) 在上述语法的基础上进一步指定 X 的数据类型(类)。例如,ones(5,‘int8’) 返回 8 位整数组成的 5×5 矩阵。
- X = ones(___,‘like’,p) 指定 X 具有与数值变量 p 相同的数据类型、稀疏性和复/实性(实数或复数)。
算术运算
数组乘法 .*
示例:
>> a=1,b=2
a =
1
b =
2
>> a.*b
ans =
2
>> a=[1 2 3],b=[2 3 4]
a =
1 2 3
b =
2 3 4
>> a.*b
ans =
2 6 12
说明:数组乘法是两个矩阵中相同位置的元素相乘后,存放到结果相应的位置。
矩阵乘法 *
示例:
>> a=1,b=2
a =
1
b =
2
>> a*b
ans =
2
>> a=[1;2;3];b=[1,3,5];
>> a*b
ans =
1 3 5
2 6 10
3 9 15
>> a=[1 2 3; 2 3 4; 3 4 5]; b = [2 4 6; 3 4 5; 6 7 8];
>> a*b
ans =
26 33 40
37 48 59
48 63 78
说明:A*B,要求A的列数等于B的行数。
‘(共轭转置)和.’(数组转置)
A’是复数矩阵A的线性代数转置,是复共轭转置。
>> A = [1 2 3; 4 5 6] %2*3矩阵
A =
1 2 3
4 5 6
>> A' %共轭转置
ans =
1 4
2 5
3 6
>> A.' %数组转置
ans =
1 4
2 5
3 6
>> B = [1+i 2+2i 3+3i; 4+4i 5+5i 6+6i] %2*3复数矩阵
B =
1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i
4.0000 + 4.0000i 5.0000 + 5.0000i 6.0000 + 6.0000i
>> B' %共轭转置
ans =
1.0000 - 1.0000i 4.0000 - 4.0000i
2.0000 - 2.0000i 5.0000 - 5.0000i
3.0000 - 3.0000i 6.0000 - 6.0000i
>> B.' %数组转置
ans =
1.0000 + 1.0000i 4.0000 + 4.0000i
2.0000 + 2.0000i 5.0000 + 5.0000i
3.0000 + 3.0000i 6.0000 + 6.0000i
( : )
(:)是将矩阵转换为列向量(n1的矩阵)。
对于行向量(1n的矩阵),相当于转置;
对于列向量,不会发生变化;
>> A = [1 2 3; 4 5 6] %2*3矩阵
A =
1 2 3
4 5 6
>> A(:) %转换
ans =
1
4
2
5
3
6
(m1:n1, m2:n2)
该运算符用于获取矩阵中m1到n1行、m2列到n2列的所有元素。
>> a = [1 2 3; 4 5 6; 7 8 9]
a =
1 2 3
4 5 6
7 8 9
>> a(1:2,:)
ans =
1 2 3
4 5 6
>> a(:,2:3)
ans =
2 3
5 6
8 9
>> a(1:2,2:3)
ans =
2 3
5 6