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

MATLAB仿真中常用的一些函数(不完全个人总结:)—— 第一部分

2018-03-10 16:13 316 查看

MATLAB仿真中常用的一些函数(不完全个人总结:)

对自己日常仿真中出现的比较生疏,或者容易遗忘的MATLAB函数进行了总结,回来查阅或是记忆一下想来也是不错的。

Ctrl+F用起来!

1.sort函数——排序函数

1)B=sort(A) 对一维或二维数组进行升序排序,并返回排序后的数组,当A为二维时,对数组每一列进行排序.

A=\[1,5,3\],则sort(A)=\[1,3,5\]
A=\[1,5,3;2,4,1\],则sort(A)=\[1,4,1;2,5,3\]


(2)B=sort(A,dim),对数组按指定方向进行升序排序,

dim =1,表示对每一列进行排序,,dim=2表示对每一行进行排序.

(3)B=sort(A,dim,mode),mode为指定排序模式,mode为”ascend”时,进行升序排序,为”descend “时,进行降序排序.

(4)Matlab中给一维向量排序是使用sort函数:sort(A),排序是按升序进行的,其中A为待排序的向量;若欲保留排列前的索引,则可用 [sA,index] = sort(A) ,排序后,sA是排序好的向量,index 是 向量sA 中对 A 的索引。 索引使排列逆运算成为可能。

2.rand函数——生成均匀分布随机矩阵

Y=rand(m,n):生成m*n随机矩阵,值在0到1之间

3.mapminmax函数——归一化函数

x1 = [1 2 4],
[y,ps] = mapminmax(x1)
y = -1.0000 -0.3333 1.0000
ps = name: 'mapminmax' xrows: 1 xmax: 4 xmin: 1
xrange: 3 yrows: 1 ymax: 1 ymin: -1 yrange: 2


其中y是对进行某种规范化后得到的数据,这种规范化的映射记录在结构体ps中.

y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin
y2 = mapminmax('apply',x2,ps);
%对x2采用同样的归一化方案
X = mapminmax('reverse',Y,PS);
%反归一化


5.matlab中./与/有什么区别

点运算是处理的元素之间的运算,而直接的/在矩阵计算中只能处理符合矩阵运算法则的运算。比如作图时的运算用的都是点运算。在对数值计算时,“./”和“/”其实是没有区别的。

例如对于矩阵
A=[a b c d],1./A=[1/a 1/b 1/c 1/d]
,而1/A表示的是A的逆

6.randn函数——生成正态分布随机矩阵



7.hist函数——二维条形直方图



8.sum函数

sum()是matlab中的求和函数,sum(A,n)表示将矩阵A沿着第n个维度求和。所以:

sum(A,1)表示沿着A的第一个维度求和,如果A是二维矩阵,也就是按列求和,结果是一个行向量

示例如下:

A = magic(3)
A =
8 1 6
3 5 7
4 9 2


s = sum(A,1)
s =
15 15 15


9.plot函数和legend函数——画图

http://blog.sina.com.cn/s/blog_7dcfa8ea0100tvnf.html

10.hist函数——直方图绘制

N = hist(Y,X)


where X is a vector, returns the distribution of Y among bins with centers specified by X.(X是向量,以X中的元素为区间中心可获得一系列区间,执行命令可获得Y在这些区间中的分布情况。)

11.max函数——最大值

[C,I]=max(a)


C表示的是矩阵a每列的最大值,I表示的是每个最大值对应的下标:

下面举例说明:
a=[1,2,3;4,5,6]    [C,I]=max(a)


结果显示的是:
C=[4,5,6]    I=[2,2,2]
返回的是最大值对应的行号。

12.对角线相加

sum(diag(X))


13.
.*
./
的用法


普通的乘
.
/
对于矩阵来说都是前面的列向量等于后面的行向量,而
.*
./
则是说两个矩阵的行列向量数目要对应相等,对应的数乘或除对应的数,得到的仍然是相同行列矩阵数的矩阵。

14.randi函数——生成均匀分布的伪随机整数

范围为imin–imax,如果没指定imin,则默认为1。

r = randi(imax,n):生成n*n的矩阵
r = randi(imax,m,n):生成m*n的矩阵
r = randi(imax,\[m,n\]):同上


15.reshape函数——重新排列矩阵

B = reshape(A,m,n)


返回一个m*n的矩阵B, B中元素是按列从A中得到的。

16.eye函数——生成单位矩阵

Y = eye(m,n) or eye([m n])
对角线是1,其他是0。

17.awgn函数——加入高斯白噪声

AWGN
:在某一信号中加入高斯白噪声

y = awgn(x,SNR)
在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。

y = awgn(x,SNR,SIGPOWER)
如果
SIGPOWER
是数值,则其代表以dBW为单位的信号强度;如果
SIGPOWER
'measured'
,则函数将在加入噪声之前测定信号强度。

y = awgn(x,SNR,SIGPOWER,STATE)
重置
RANDN
的状态。

y = awgn(…,POWERTYPE)
指定SNR和SIGPOWER的单位。
POWERTYPE
可以是’dB’或’linear’。如果
POWERTYPE
'dB'
,那么SNR以dB为单位,而
SIGPOWER
以dBW为单位。如果
POWERTYPE
'linear'
,那么SNR作为比值来度量,而
SIGPOWER
以瓦特为单位。

注释

1). 分贝(decibel, dB):分贝(dB)是表示相对功率或幅度电平的标准单位,换句话说,就是我们用来表示两个能量之间的差别的一种表示单位,它不是一个绝对单位。例如,电子系统中将电压、电流、功率等物理量的强弱通称为电平,电平的单位通常就以分贝表示,即事先取一个电压或电流作为参考值(0dB),用待表示的量与参考值之比取对数,再乘以20作为电平的分贝数(功率的电平值改乘10)。

2). 分贝瓦(dBW, dB Watt):指以1W的输出功率为基准时,用分贝来测量的功率放大器的功率值。

3). dBm (dB-milliWatt):即与1milliWatt(毫瓦)作比较得出的数字。

0 dBm = 1 mW

10 dBm = 10 mW

20 dBm = 100 mW

18.tic和toc——记录程序运行时间

tic用来保存当前时间,而后使用toc来记录程序完成时间。

两者往往结合使用,用法如下:

tic
operations
toc


显示时间单位:秒。

19.find——寻找非零元素的位置



19.sub2ind——寻找特定位置的索引

在命令窗口输入:

>> A=[4 7 2 9 8;3 9 1 4 3;1 5 9 6 4;8 3 7 1 0]
A =
4 7 2 9 8
3 9 1 4 3
1 5 9 6 4
8 3 7 1 0


则A中每个元素对应的索引如下(MATLAB中数据是按列的方式存储的):

1 5 9 13 17
2 6 10 14 18
3 7 11 15 19
4 8 12 16 20


ind=sub2ind(siz,I,J):siz表示要转换的矩阵的行列数,I是要转换矩阵的行标,J是要转换矩阵的列标。I,J的行列数必须相同。ind为输出参数,其行列数与I,J相同。ind即为索引。

在命令窗口中输入:

>> ind=sub2ind(size(A),[1,2;3,4],[1,1;2,2])
则显示
ind =
1 2
7 8


从运算结果可以看出,在矩阵A中,下标(1,1)的索引值为1,下标(2,1)的索引值为2,下标(3,2)的索引值为7,下标(4,2)的索引值为8

20.mod函数——求模数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: