概述
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
最后
以上就是壮观便当为你收集整理的MATLAB仿真中常用的一些函数(不完全个人总结:)—— 第二部分的全部内容,希望文章能够帮你解决MATLAB仿真中常用的一些函数(不完全个人总结:)—— 第二部分所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复