首页 > 其他 > 详细

MATLAB遇到过的函数小总结

时间:2021-01-24 18:38:52      阅读:27      评论:0      收藏:0      [点我收藏+]

由于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指定的文件

MATLAB遇到过的函数小总结

原文:https://www.cnblogs.com/gjblog/p/14321065.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!