-
matlab ms word automation
2009-12-22
h = actxserver('Word.Application');
doc = h.Documents.Add();
doc.SaveAs('C:\hello.doc');
h.Quit;
-
matlab
2009-12-10
几乎天天用matlab写程序
没有matlab生活简直都没法想象了
其实matlab应该算是最成熟的script语言了
function handle很好用,也很必要
scripts可以套用
structure的field可以动态创建,动态增长,这都很方便
画图很方便
工具箱很多,基本上不用找什么第三方类库
一个完整,统一,简单的世界
也许唯一的问题是效率,部署
-
pass varargin
2009-09-24
function a(varargin)
end
function b(varargin)
a(varargin{:}) % a(varargin) 是错误的
end
-
eval
2009-09-24
eval(['save ' output_filepath ' ceptral'])
用于保存一个matlab变量(ceptral) 到一个特定的文件
-
matlab的一些语法之三
2006-06-07
匿名函数,以及函数对象
sqr = @(x) x.^2;
fhandle = @functionname
python中的lambda语句似乎就相当于matlab中的匿名函数。看来这东西在脚本语言里还挺流行的。下面是一个例子:
fplot(@(x) a*x.^2 + b*x + c, [-25 25])
fplot接受一个函数对象,打印这个函数的曲线。没有匿名函数似乎真的很麻烦。
下面是另外一个例子,同时还包括嵌套函数:
function fhandle = makeParabola(a, b, c)
% MAKEPARABOLA returns a function handle with parabola
% coefficients.fhandle = @parabola; % @ is the function handle constructor
function y = parabola(x)
y = a*x.^2 + b*x + c;
end
end用的时候,相当于给定三个参数生成一个函数对象,然后使用这个函数对象进行操作,比如:
h = makeParabola(1.3, .2, 30);
h(25)
ans =
847.5000Java里面可以这么做:第一种方式:定义一个类Parabola,三个成员变量a, b, c。然后调用成员函数。第二种方式:对于多种函数,定义一个接口。然后让Parabola实现这个接口。对于前面的fPlot。定义一个接口为interface F{double f(double x);}。这是面向对象的方式,好处不少。就是有时没那么简洁。
-
matlab的一些语法之二
2006-06-07
bills = [patient.billing]
bills =
127.0000 28.5000 504.7000patient是一个结构数组,对应于c可以这么看:
struct PatientElem {
double billing
} PatientElem;
PatientElem patient[N];matlab中的[patient.billing]就相当于[patient[1].billing patient[2].billing ... patient[N].billing]。然后就可以做这样的操作:
total = sum ([patient.billing]);
-
matlab的结构类型
2006-06-07
//虽然N年前就开始接触matlab,但今天才第一次好好看了一下帮助文档的编程介绍
MATLAB automatically builds the structure as you go along.
似乎没有必要定义什么struct的类型。似乎也无法定义。因为变量的类型在运行时是可以变化的。比如a.b = 1
那么a就是个struct变量。它包含b这个成员变量。接着可以这么写:
a.c = 2
现在,a的成员变量又多了一项,就是c。再接着写:
a(2).b = 3
现在,a的类型是个结构数组。再接着写:
a(2).d = 4
现在,a这个数组中的结构类型有三个成员变量:b, c, d。a(1)中之前没赋值的成员变量自动定义为空。接着写:
a(3).b.e = 5
现在,结构类型又变化了,原先的成员变量b不再是数值型,而是一个含有成员变量e的结构类型。
//真是有意思
