Matlab常用技巧备忘

我的Matlab笔记,包括经常用到的一些命令和操作,备忘。

 

常用命令

clear 清空工作区所有变量

save filename varname 保存某变量到文件

clear xxx 只清空xxx变量

clc 清空命令行窗口

 

数据处理

autocorr 求自相关函数

crosscorr 求互相关函数

randn(m,n) 生成正态分布随机数mn

isnan 判断矩阵元素是否为NaN

detrend 时间序列去趋势处理

 

在一个图形上显示多个子图

figure 创建一个空的图形窗口

hold on 保持当前图形,后面画的图仍将在上面画(便于比较)

subplot(121)subplot(1,2,1)  将要画一个12列共两个图,其中现在要画第1个图

 

执行一个字符串里代表的语句

如果要执行一个字符串里代表的语句用eval命令:

例如for n=1:5  eval([‘b=n’ num2str(n)])  end

相当于执行b=n1,  b= n2,  b=n3,  b=n4,  b=n5

 

Matlab注释

Matlab注释一段代码时,可以用菜单命令,也可以用ctrl+R

另外,取消注释一段代码用ctrl+T

 

过长语句折行

Matlab程序中给过长语句换行,加三个点。即

 

程序加密/混淆

matlab程序混淆成p代码,用pcode xxx可以生成对应m文件的p文件,源代码不可见,不影响执行。

 

生成可执行exe

命令行方式:用mcc –m myfile可以把文件编译成外部可执行文件exe,并包含C代码

图形方式:用deploytool命令(从matlab2008b)可以以图形化方式生成外部exe,但放到其他机器运行需要安装MCRInstaller.exe,这也可以以该方式自动生成

 

使用C编写mex并在Matlab里执行

编译时用mex –g mytest.c命令,其中-g表示生成可调试信息,编译时要求mytest.c必须在当前目录下(实际使用发现不加-g优化的代码运行结果有可能与加-g时不一样,所以最好是加上)。调试方法是用VC打开mytest.mexw32,再打开mytest.c,在源代码中添加断点后,ProjectàSettingsàDebugàExecutable for debug session中填上”.. /bin/win32/matlab.exe”,然后Go(F5)调试启动matlab,再在matlab里调用mytest即可运行到断点。

mex程序注意要点:

1,入口点形式为void mexFunction( int nlhs, mxArray *plhs[],  int nrhs, const mxArray *prhs[]),相当于main

2,在mexFunction中最后不要加exit语句,否则程序无法正常运行

3,常用的函数与例子:入口部分inData=mxGetPr(prhs[0]);

                             M=mxGetM(prhs[0]);

                             N=mxGetN(prhs[0]);

出口部分plhs[0]=mxCreateDoubleMatrix(M,N,mxREAL);

              outData=mxGetPr(plhs[0]);

其他部分可以看matlab文档。

 

求所有可能组合

用函数nchoosek,返回所有可能的n*(n-1)/2种组合。

例如:choosemat = nchoosek(1:3 , 2)

choosemat =

     1     2

     1     3

     2     3

choosemat = nchoosek([0 1 9] , 2)

choosemat =

     0     1

     0     9

     1     9

 

作直线拟合求斜率

p=polyfit(X,Y,1);

k=p(1);  %斜率

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值