您的位置:首页 > 编程语言 > MATLAB

遇到过的MATLAB函数小总结

2021-01-24 15:36 761 查看

由于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指定的文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: