我是靠谱客的博主 壮观便当,最近开发中收集的这篇文章主要介绍MATLAB仿真中常用的一些函数(不完全个人总结:)—— 第二部分,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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仿真中常用的一些函数(不完全个人总结:)—— 第二部分所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部