2008年12月5日星期五

Matlab使用经验

Matlab使用经验

这篇文章中将随时添加一些使用Matlab时别的地方不容易找到的问题的解决方法。




Matlab批处理方式运行

在用Matlab运行大任务时,为了避免终端断开造成的误退出,可以用批处理方式运行Matlab
写一个如下的名为batchmatlabshell脚本:

#/bin/sh
nohup matlab -nodisplay -nodesktop -nojvm -nosplash < $1 >& $2 &

设置好运行权限,如果有一个myprog.m要批运行的话,可用如下命令:

batchmatlab myprog.m myprog-log.txt

文本型的输出的结果将保存在文件“myprog-log.txt”中。批处理运行的Matlab程序如需绘图
应直接输出到文件中。




如何从文件中读入一系列文件名

其中假设list.txt中每行有一个文件名, 我们需要对这些文件作一些处理,代码例子如下
flist = readlist('list.txt');
nf = length(flist);
for ii = 1:nf;
fname = char(flist(ii));
%% Do something for file fname here.
end;
%%% Read a list of lines from a file.
function li=readlist(fname)
fid = fopen(fname, 'r');
li={};
ii=0;
while 1;
ii = ii+1;
tt = fgetl(fid);
if(~ischar(tt));
break;
end;
li(ii) = cellstr(tt);
end;
end
函数readlist把指定文件中的文件名表读入到结果li中,li是一个cell array,其中每一个元素是cell类型的字符串,为了使用其元素需要用char函数转换为character array类型。

没有评论: