由于MATLAB中用过的函数总是会忘,于是想总结一下。虽然没什么时间去复习(也没这个必要),用的时候直接百度就完事了。但总结一遍总会有那么一丁点用吧,慢慢更新,持续更新,见到一个新的且有意义的就总结下来!
randint
旧的输出整数矩阵,新版MATLAB用randi代替了,但是参数不太一样
randint(1,LEN,MAX)
>> 输出1行,LEN列矩阵,范围为0 ~ MAX - 1
randi
输出整数矩阵
randi([0, MAX], 1, LEN)
>> 输出1行,LEN列矩阵,范围为0 ~ MAX
randn
randn(ROW, COL)
>> 输出ROW行COL列符合标准正态分布的随机数N(0,1)
eval
可以做到类似str2dec操作
eval(‘123‘)
>> 123
findstr
找到字符串的下标(从1开始)
findstr(‘asdfgasdfgaasdf‘,‘as‘)
>> 1 6 12
find
找到数组非零元素
findstr([1 2 3; 1 2 3; 1 2 3])
>> 1 2 3 4 5 6 7 8 9
fftshift、ifftshift
前半后半交换,目的是为了傅里叶变换后频谱中心为0Hz对称
ifftshift([1 1 1; 2 2 2; 3 3 3; 4 4 4])
>> 3 3 3; 4 4 4; 1 1 1; 2 2 2
circshift
循环按行移位
circshift([1 1 1; 2 2 2; 3 3 3; 4 4 4], 1)
>> 4 4 4; 1 1 1; 2 2 2; 3 3 3
reshape
将向量或矩阵A重新排列成M行N列,注意MATLAB先行后列读取和写入
reshape(A, [M, N])
strcat
将字符串拼接在一起,注意MATLAB中string和char没什么区别,可以混用的感觉
strcat(‘qwe‘, ‘123‘, ‘ok‘)
>> ‘qwe123ok‘
size
返回矩阵A每维度的长度
size(A)
isempty
矩阵A是否为空(什么数都没有才为空)
mean
求均值,当输入为矩阵时,求每一列的均值
conj
求共轭
floor
地板函数,向下取整
ceil
天花板函数,向上取整
diff
求差分(或者说导数),等于后一个数减前一个数的值,输入为矩阵时按列求
diff([1, 2, 4, 7])
>> 1 2 3
setdiff(A, B)
找到A里面除了B里数据的下标
setdiff([1 2; 3 4], [1 6 4])
>> 2
3
repmat(A, ROW, COL)
将矩阵A进行ROW行COL列平铺
repmat([1 2], 2, 2)
>> 1 2 1 2
1 2 1 2
squeeze(A)
删除矩阵A中长度为1的维度
permute
置换矩阵A维度
permute(A, [2 1 3])
fft(A, FFTSIZE)、ifft(A, FFTSIZE)
对矩阵A进行FFTSIZE点fft、ifft,按列进行
svd
[U, S, V] = svd(A);
A的奇异值分解,S降序排列
awgn
awgn(in, snr)
对输入信号in添加信噪比为snr的高斯白噪声,注意snr单位dB
inv/pinv
非奇异矩阵/奇异矩阵求逆
eig
求矩阵特征向量和特征值,特征值在主对角线上,从小到大排列
a = [3 0; 0 0]
[v, d] = eig(a)
>> v = 0 1
1 0
d = 0 0
0 3
plot、stem
先来个画图全家桶
subplot(2,1,1);
plot(t,y1,,‘g‘,t,y2,‘r‘);
legend(‘微分信号‘,‘信号包络‘);
title(‘已调信号微分后时域图‘); xlabel(‘时间(s)‘); ylabel(‘幅度‘);
xlim([0 10]);ylim([0 10])
scatterplot
输入一串复数,输出所有数的复平面的位置图。输出星座图时使用
ginput
imresize
imshow
xor
异或
xor([0 1 0], [1 1 1])
>> 1 0 1
dec2bin
dec2bin([1 2; 3 4])
>> ‘001‘
‘011‘
‘010‘
‘100‘
num2str
将数组原封不动的转换成字符数组形式
num2str([1 2; 3 4])
>> ‘1 2‘
‘3 4‘
fopen
fid = fopen(‘.../xx.dat‘, ‘w+‘)
打开某地址指定的文件,成功返回一个正数
fprintf
fprintf(fid, ‘%04x\n‘, data)
将data数据,按照规定的格式,写入到fid指定的文件中。注意data按列写
fscanf
按规定的格式读取数据到矩阵中
A = fscanf(fid, ‘4x‘)
fgetl
读取文件的一行,下一次读会自动跳到下一行
fgetl(fid)
feof
判断当前文件是否到读完,读完了返回1,否则返回0
feof(fid)
fclose
fclose(fid)
关闭fid指定的文件
原文:https://www.cnblogs.com/gjblog/p/14321065.html