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

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函数——求模数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值