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

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

2018-03-10 16:15 423 查看

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

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

Ctrl+F用起来!

21.dig()函数——对角矩阵

>> dig(4,b,a,1,6,5)




22.unidrnd()函数——产生均匀离散整数随机数

>> a = unidrnd(100, 2, 3)
a =
11 99 19
65 11 1


2行3列的在100内的包括100的随机数

23.求上例复数矩阵C的实部、虚部、模和相角。

C_real=real(C)
C_imag=imag(C)
C_magnitude=abs(C)
C_phase=angle(C)*180/pi %以度为单位计算相角


24.神经网络的参数设置

et.trainparam.goal
:神经网络训练的目标误差 net.trainparam.show : 显示中间结果的周期

net.trainparam.epochs
:最大迭代次数

net.trainParam.lr
: 学习率

net.trainParam.max_fail
:验证次数 validation

net.trainParam.mc = 0.9
; 动量因子

25.Matlab Title 中引入变量

方法:
title(['figure ',num2str(i)])
; 注意:有两点,一是title中引入中括号[];二是用到函数num2str(i)

推广:在title中引入多个变量,如下:

title(['频率f=401.5MHz,障碍物在距离发射天线',num2str(zaw_location),'m处,障碍物高度',num2str(R),'m'])


26.对图片的操作

命令框中输入“close all”用来关闭所有的图片

saveas函数是存储图片要用到的

27.复数的运算

a如果是复数,a’就是他的共轭;如果a是复数矩阵,a’就是他的共轭然后在转置,a.’只是转置,conj(a)只是共轭

28.绘制函数图像

一个变量的函数:

x=linspace(0,8); % 用向量形式创建
y1=sin(x); % 向量y1的值为x坐标上某一x的s i n ( 2 x )
plot(x,y1)


两个变量的函数(Ackley函数——粒子群算法):

x1=linspace(-5,5);
x2=linspace(-5,5);
[x1,x2]=meshgrid(x1,x2);
y=-20*exp(-0.2*sqrt((x1.^2+x2.^2)/2))-exp((cos(2*pi*x1)+cos(2*pi*x2))/2)+20+2.71282;
mesh(x1,x2,y)
xlabel('x1')
ylabel('x2')
zlabel('y')


29.一行复制为多行

a=[1 2 3 4 3 2 1]
>> B=repmat(a,4,1)
B =
1     2     3     4     3     2     1
1     2     3     4     3     2     1
1     2     3     4     3     2     1
1     2     3     4     3     2     1


30.
.^
^
的区别

^
是以矩阵为操作数的乘方,
.^
是以矩阵中的每个元素为操作数的乘方

A^2
相当于
A*A
,要求
A
的行列个数必须相同

A.^2
相当于
A
中的每个元素
a*a
,对
A
的行列个数没什么要求

A=[1,2;3,4];
那么A^2=[7,10;15,22]
A.^2=[1,4;9,16]


31.把一个小矩阵补成大矩阵,缺的地方用零来补充

A=[1 2;3 4;]
B=blkdiag(A,zeros(3,3));
E =
1 2 0 0 0
3 4 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0


32.二进制与十进制之间的转换

dec2bin()
:该函数实现从十进制到二进制的转换。调用格式:b=dec2bin(a)。其中b为二进制,a为十进制。

bin2dec()
:该函数实现从二进制到十进制的转换,调用格式:a=bin2dec(b)。其中b为二进制,a为十进制。参数b的数据类型是字符型

33.取整函数

floor
:朝负无穷方向靠近最近的整数;

ceil
:朝正无穷方向靠近最近的整数;

34.打乱数组的排列顺序

A =
1 2 34 12 4 2 4 3 8 8 7 6
1 2 34 12 4 2 4 3 8 8 7 6
B = A(:,randperm(length(A)))
B =
2 8 1 2 34 4 12 3 8 7 4 6
2 8 1 2 34 4 12 3 8 7 4 6


35.sign函数

sign(x)
:符号函数 (Signum function)。

当x<0时,sign(x)=-1;

当x=0时,sign(x)=0;

36.随机产生一定个数一定范围的整数

randint(n,6,[1 2])
; %产生n行6列的,值在1和2之间的随机整数矩阵

37.二进制数如何以数组的形式表示

>> A=dec2bin(10,5)
A =
01010
>> B=double(A)-48
B =
0 1 0 1 0
>> C=round(rand(1,5))
C =
0 0 1 1 1
>> B-C
ans =
0 1 -1 0 -1
当x>0时,sign(x)=1。


38.求余数的rem和mod

参见Matlab里的rem命令的帮助,其中提到:rem(X,Y) and mod(X,Y) are equal if X and Y have the same sign, but differ by Y if X and Y have different signs.翻译过来就是:如果X和Y的符号相同,rem(X,Y)和mod(X,Y)的结果一致,如果X和Y的符号不同,rem(X,Y)和mod(X,Y)的结果不同。The rem function returns a result that is between 0 and sign(X)*abs(Y)。rem返回的结果介于0和sign(X)*abs(Y)之间,

例如rem(-12.2,-2)和rem(-12.2,2)的返回值-0.2。

mod(X,Y)的结果与Y同号。

两者另一个比较大的差别在于rem(X,0)=NaN,而mod(X,0)=X

39.rand,每次产生的随机数是相同的(但它是随机数)

设置一个种子,设置后下面的随机数是一定的

rand('seed',77);
a=rand
a=0.4940

rand('seed',77);
a=rand
a=0.4940


40.服从均值为a,方差为b的M个复高斯随机数

x = randn( 1 , M );
y = randn( 1 , M );
data = a + (x+i*y)*sqrt(b/2);


41.产生全为某个固定值的矩阵

x = ones( m , n , l ) *8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: