最近接触matlab程序,这里记录一下matlab常用语法。
目录
1、find函数
查找矩阵X中的非零元素,返回这些元素的下标。
A=[1,0;2,3];
find(A)
ans =
1
2
4
find(A==2):查找A中等于2的元素,并返回下标。
A=[1,0,2,3,2,7];
find(A==2)
ans =
3 5
2、ones()
生成全部为1的矩阵
len=8;
xdata_dec=ones(len,1);
disp(xdata_dec)
1
1
1
1
1
1
1
1
3、reshape(A,m,n)
矩阵重排列,改变矩阵行列数,返回m*n的矩阵,m为行,n为列
A=[1,0;2,3;5,7];
disp(A)
B=reshape(A,2,3);
disp(B)
1 0
2 3
5 7
1 5 3
2 0 7
4、A(1:2,:)
表示取矩阵1到2行的全部元素
A=[1,0;2,3;5,7];
B=A(1:2,:);
disp(B)
1 0
2 3
A(2,end):返回矩阵A第二行最后一列的元素
A=[1,0;2,3;5,7];
disp(A)
B=A(2,end);
disp(B)
1 0
2 3
5 7
3
A(:,end):返回矩阵A最后一列元素
A=[1,0;2,3;5,7];
disp(A)
B=A(:,end);
disp(B)
1 0
2 3
5 7
0
3
7
5、dec2hex
将十进制转换为十六进制;hex2dec:将十六进制转换为十进制。
A=[11,34,56];
B=dec2hex(A);
disp(B)
0B
22
38
6、十六进制转浮点数
b = ['C8','AC','2C','3F'];
c = typecast(uint32(hex2dec(b)),'single');
disp(c)
-3.5261e+05
十六进制与浮点数转换工具 tools
浮点数转换为32位十六进制:
a=-7.0000e-06;
b=sprintf('%tx',single(a));
disp(b)
b6eae18b
小端模式:内存的低地址存数据的低位,内存的高地址存数据的高位,低低高高;大端模式:内存的低位存数据的高位,内存的高地址存数据的低位,低高高低。
7、[]、{}、()区别
[ ] 用它来存储矩阵和向量。
a=[1,2,3]
a=[1 2 3;4 5 6;7 8 9]
{ } 大括号,用于cell(单元数组)型数组的分配或引用。
c={'chian','中国',[1 2 3 4]}
( )小括号,用于引用数组的元素。
X(3)表示X的第三个元素
%创建一个两行三列的单元数组
a = cell(2,3);
%第一行第一列的元素是[1 2 3]
a(1,1)= [1 2 3];
8、均值、标准差
A = [1; 1.2; 1.0;1.8;1.6;1.4;1.6;2.3;1.5;3.5;2.87;2.1;2.2;2.3;2.5;2.98; 3.9;3.67;3.66;7;5.3;3.1;3.64;3.76;3.6;10];
% 均值
mu = mean(A);
% 标准差
sigma = std(A);
% 创建一个逻辑矩阵,其中true表示A中对应位置的值小于等于2
idx = A <= 2;
B = A(idx);
disp(B)
输出:
1.0000
1.2000
1.0000
1.8000
1.6000
1.4000
1.6000
1.5000
9、findpeaks函数
用于查找信号中的峰值(peaks)。
10、数组
数组追加:
% 假设原始数组为data
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
% 追加值
data = [data, 16]
读取数组最后一个值与倒数第二个值:
% 假设原始数组为data
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
% 读取数组最后一个值
disp(data(end))
% 读取数组倒数第二个值
disp(data(end-1))
去除前十个值:
% 假设原始数组为vec
vec = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
% 去除前10个值
new_vec = vec(11:end);