遇到过的MATLAB函数小总结
2021-01-24 15:36
1216 查看
由于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)
rand
rand(ROW, COL)>> 输出ROW行COL列符合[0, 1]间均匀分布的随机数
unidrnd
unidrnd(n, ROW, COL)>> 输出(0, n]之间的离散均匀分布随机整数
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)
diag
输入矩阵的话,返回矩阵对角线元素;输入向量的话,返回以向量为对角线的方阵
isempty
矩阵A是否为空(什么数都没有才为空)
mean
求均值,当输入为矩阵时,求每一列的均值
trace
计算输入矩阵主对角线元素之和
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])>> 23
repmat(A, ROW, COL)
将矩阵A进行ROW行COL列平铺repmat([1 2], 2, 2)>> 1 2 1 21 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 11 0d = 0 00 3
sort(A, dim)
把矩阵A按第dim维度排序sort([1 4; 2 3], 1)>> 1 32 4
四:画图
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、bin2dec
十进制转二进制字符串b = dec2bin([1 2; 3 4])>> '001''011''010''100'二进制字符串转十进制d = bin2dec(b)>> 1324
bin2dec
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,否则返回0feof(fid)
fclose
fclose(fid)关闭fid指定的文件
相关文章推荐
- matlab中遇到的若干函数总结
- [matlab]mathworks上的cody challenge题解及一些常用函数的总结(6)
- matlab中svd函数用法总结
- [matlab]mathworks上的cody challenge题解及一些常用函数的总结(7)
- MATLAB 以及numpy工具包中的reshape函数用法总结
- Matlab中使用Plot函数动态画图方法总结
- [Matlab]关于时间的函数的不完全总结
- Java中调用matlab遇到的问题总结
- 无意中遇到的bsxfun函数—matlab
- MATLAB函数文件知识总结
- matlab plot函数使用总结
- MATLAB遇到的个别函数
- MATLAB图像生成函数Plot()总结
- matlab 图像处理函数总结
- [转载]Matlab中使用Plot函数动态画图方法总结
- 总结 deep learning matlab 练习 相关函数总结
- Matlab保存图像函数总结
- matlab实战中一些重要的函数总结
- matlab实战中一些重要的函数总结
- 学习matlab中遇到的一些函数及其用法