1. MATLAB代码程序执行超时退出
tic
tstart = tic;
while(1)
%do something
timeout = toc(tstart);
if timeout > 5
break;
end
end
2. MATLAB可变输入参数
function [] = op_write(dev,cmd,varargin)
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
if nargin <2
error('the function needs at least two inpus');
elseif mod(length(varargin),2) ~= 0
error('inputs must be paired');
end
for i = 1:2:numel(varargin)
switch lower(varargin{i})
case 'addr'
naddr = varargin{i+1};
cmd(5) = naddr;
case 'data'
ndata = varargin{i+1};
cmd(6) = ndata;
otherwise
error([varargin{i} ' is not a valid property']);
end
end
%do something
3. MATLAB用户定义类
classdef ClassName < SuperClassName
properties (GetAccess = public, SetAccess = public)
Prop1 = 'haha'
end
methods
function obj = ClassName(obj,val)
if nargin > 0
obj.Prop = val;
end
end
function fun1(obj)
disp('heihei')
end
end
end
将类定义和方法的定义保存在与该类同名的 .m 文件中,即可使用该类,使用时创建对象,访问属性,调用方法。然而,当该类中方法的定义较多并且比较复杂时,可以采用@ClassName文件夹的形式,可以把一些方法分离出来,形成单独的.m文件,保存在@ClassName中。
类定义文件ClassName.m
classdef ClassName < SuperClassName
properties (GetAccess = public, SetAccess = public)
Prop1 = 'haha'
end
methods
function obj = ClassName(obj,val)
if nargin > 0
obj.Prop = val;
end
end
end
end
方法定义文件fun1.m
function fun1(obj)
disp('heihei')
end
4. MATLAB异常处理
4.1 try-catch执行语句并捕获产生的错误
function success = init_dev(obj,dev,varargin)
%initialize parameters
try
%do something
catch ME
disp(ME);
success = false;
end
end
4.2 error/warning(引发错误并显示消息/显示警告消息)
n = 7;
if ~ischar(n)
error('Error. \nInput must be a char, not a %s.',class(n))
end
4.3 assert断言
num = input('Enter a Number')
assert(a > 10, 'The input number is less than 10')
5. 数字抽取滤波器
function filterOut = cic_filter(S,D)
%------------------------------------------------------------------------
Xi = [0 S];
Xo = cumsum(Xi);
Yi = [0 Xo];
Yo = cumsum(Yi);
Zi = [0 Yo];
Zo = cumsum(Zi);
data = Zo(1:D:D*floor(length(S)/D)); %downsample
Xi = [0,data];
Xo = diff(Xi);
Yi = [0 Xo];
Yo = diff(Yi);
Zi = [0 Yo];
Zo = diff(Zi);
filterOut = (Zo/D^3);
6. 将.m文件产生DLL
在matlab命令行输入如下命令:
可以看出,没有发现可以支持的编译器,可以点击提示的链接,下载相应的文件,将下载好的文件mingw.mlpkginstall拖进命令行中,等待安装完成。
再次输入同样的命令:
由此可见,编译环境已经安装完成。
在命令行输入deploytool,弹出对话框选择Library Compiler。
按照如图所示添加相应的m文件,有关DLL的名称和描述可以在Library Information中修改,同时将namespace中的class做同步修改,增加可读性。最后点击Package,完成后可以在下列路径下找到相应的DLL文件。