Matlab的一些零碎方法

来源:互联网 发布:遥感数据 分类 建模 编辑:程序博客网 时间:2024/05/22 10:56

今天老师说可以放假回家过年了,甚是开心,稍微总结一点则几个月Matlab的零碎方法,供以后查用。本科毕设用的是Matlab和VS做的调制识别,很碰巧的是,现在研究生发小论文,还是用Matlab仿真,果然是仿真神器。

1.调幅:y=ammod(x,Fc,Fs,0,2):产生一个调幅波,其中,x表示数据,0为初始相位,2为载波幅度。类似,可以产生调频、调相波。

2.保存文件:在命令或者edit中,使用:save 文件名.txt  变量名  -ascii    :可以将变量保存到指定的按时吃文件中。

3.画图:plot(y(1:200)):只画前200个点;画子图:subplot(m, n, p):m:行,n:列,p:第几个图。

4.强制转换:在C中用:(int)(...),在Matlab中,用:int(...)

5.Matlab矩阵相乘:.* 是对应的每个数相乘,*是使用矩阵的乘法。幂也一样。

6.卷积:例如:y=conv(x, h):y的长度为length(x)+length(h)-1

7.压缩空格:format compact

8.mod:求余,floor:向下取整,ceil:向上取整,fix:向0靠拢取整

9.fprintf:输出到文件;disp:输出到command window

10.mean:求矩阵均值,默认求各列均值;mean(A)=mean(A, 1);mean(A ,2):求各行均值

11.find(A>i, k):找出从A>i的k个位置。那么find(A>i)找出所有的位置。find(A):找出A中的非0位置

12.a=randperm(10):产生一个1*10的随机打乱的由1到10组成的行向量

13.sum(A):将A的各列求和,和mean应该类似用法,可以试一下

14.mapminmax(A,0,1):将A矩阵的每行都做0-1之间的归一化处理

15.A=struct(...):这是一个结构体,貌似只用过一次,搞忘了

16.repmat(A,[m n]),repmat(A,m,n):将A复制成m*n块

17.rand(n):产生n*n:0-1的随机矩阵;对应rand(m,n)

18.feval:将一已知的数据或符号代入到一个定义好的函数句柄中

eg:f=function(x,y){x+y}

k1=feval(f,1,t)等价于:k1=f(1,t){1+t}

19.prod(A):若A是1*N则计算所有值的乘积

    若A是M*N则计算每列乘积,返回1*N

20.sum(A)‘:计算的时候,先求和,后转置

21.axis([ xmin xmax ymin ymax]):顾名思义,控制x和y轴的范围

22.semilogy:绘图时,y轴为对数坐标(常用)

     semilogx:x为对数

     loglog:二者都为对数

23.std:求标准差函数

24.取A矩阵的子矩阵,用行列范围作为参数:A(k1:k2,k3:k4)

25.numel:返回元素个数

     size(A,1):返回A行数,2:返回列数

26.遗传算法工具:[x,fval]=ga(fitness,nvars,A,b,Aeq,beq,lb,ub,nonlcon,options)

其中:x为返回最优值,fval为返回最优适应度,fitness为适应度函数,nvars为变量个数

    Ax<=b,Aeqx<=beq,lb<=x<=ub,nonlcon为非线性约束,下面这些这些参数应该不用管它,具体的搞忘了。

27.柱状图:bar(x,0.2):0.2表示宽度

28.legend:分布将字符串标注到图中,每个字符串对应画图时的图标

29.由x,y生成二维图

[x,y]=meshgrid(xa,ya)

z=f(x,y):这是自己定义的函数

mesh(x,y,z)

30.B=reshape(A,m,n):返回一个M*N的B,元素按列从A 中得到,大家可以试一下当A中元素少于M*N会是神马结果

31.randi(imax,m,n):在(0,imax)之间产生m*n个随机整数

32.设置横坐标的值:set(gca,’xticklabel‘,{’1‘ ,’3‘,...}):gca应该为要设置的句柄

33.函数一般格式:function [output1,output2]=f(x1,x2)

今天大体总结了一些Matlab可能会用到的公式,现如今,互联网找工作一般都不做Matlab了,都是用来做仿真了,还是C++和Java很拽,过几个月要找互联网实习了,感觉压力好大,赶紧开始看数据结构,算法和面试宝典了,还有Linux、脚本语言,哎,慢慢来吧,加油了。但个人觉得Matlab的功能还是非常强大的,不应该丢弃了,以后工作说不定还是有用。

1 0