%初始化matlab并行运行环境
% Initialize Matlab Parallel Computing Environment
CoreNum=2; %设定机器CPU核心数量,我的机器是双核,所以CoreNum=2
if matlabpool(‘size‘)<=0 %判断并行计算环境是否已然启动
matlabpool(‘open‘,‘local‘,CoreNum); %若尚未启动,则启动并行环境
else
disp(‘Already initialized‘); %说明并行环境已经启动。
end
% 运行成功后会出现如下语句:
% Starting matlabpool using the ‘local‘ configuration ... connected to 2 labs.
% 如果运行出错,按照下面的办法检测:
% 首先运行:
% matlabpool size
% 如果出错,说明你没有安装Matlab并行工具箱。确认安装了此工具箱后,运行:
% matlabpool open local 2;
% 如果出错,证明你的机器在开启并行计算时设置有问题。请联系MathWorks的售后服务。
% 终止Matlab并行计算环境
% 用上述语句启动Matlab并行计算环境的话,在你的内存里面有CoreNum个Matlab进程存在,
% 每个占用内存都在百兆以上。(可以用Windows任务管理器查看),故完成运行计算
% 后可以将其关闭。关闭的命令很简单:
matlabpool close
下面给出一个具体的示例
clear all;
close all;
clc;
%列出文件清单,文件名具有相同的前缀
p = which(‘JPCLN001.bmp‘); %Locate functions and files
filelist = dir([fileparts(p) filesep ‘JPCLN*.bmp‘]);
fileNames = {filelist.name}‘;
%查看其中一张图像
I = imread(fileNames{1});
I = imresize(I,0.25);
imshow(I);
text(size(I,2),size(I,1)+15, ...
‘Image files courtesy of Alan Partin‘, ...
‘FontSize‘,7,‘HorizontalAlignment‘,‘right‘);
text(size(I,2),size(I,1)+25, ...
‘Johns Hopkins University‘, ...
‘FontSize‘,7,‘HorizontalAlignment‘,‘right‘);
% 指定应用于每张图像的图像处理算法
%生成一个图像处理函数,该函数分割显微镜图像中没有挨着的细胞
segmentedCells = batchDetectCells(I);
figure,imshow(segmentedCells)
该部分换成相应的算法即可
% 循环处理多个图像
% 函数 batchProcessFiles 使用 parfor 来单独处理每个图像。该工作类型for循环,
% 但是如果你装有并行计算工具箱,就可以充分利用多个处理器
% 如果你装有并行计算工具箱,你可以使用多至4个工作机来分配每个循环周期到不同的
% 工作机。如果你还装有MATLAB分布式计算服务器,你还可以使用一群工作机运行你的
% 批处理任务
%定位工作机
matlabpool open 4
%调用 batchProcessFiles函数对每个文件实施探测计算
segmentedCellSequence = batchProcessFiles(fileNames,@batchDetectCells);
%清理
%如果你调用 matlabpool 开启一些工作机,记得要将其关闭
matlabpool close
%显示结果
%运行下面的命令在implay中查看图像序列
implay(segmentedCellSequence)
部分内容参考 http://blog.sina.com.cn/s/blog_49ea41a20101fodd.html
http://blog.sina.com.cn/s/blog_49ea41a20101fodc.html
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
matlab对文件目录路径的操作
1、 filesep 功能说明 当前平台下文件分隔符
参数解析
f = filesep
返回当前平台的文件分隔符,该文件分隔符可分隔各级目录名和文件名。
用于返回当前平台的目录分隔符,Windows是反斜杠(\),Linux是斜杠(/)。
iofun_dir = [‘toolbox‘ filesep ‘matlab‘ filesep ‘iofun‘]
Windows平台下返回: iofun_dir = toolbox\matlab\iofun
Unix平台下返回: iofun_dir = toolbox/matlab/iofun
2、 fullfile
用于将若干字符串连接成一个完整的路径。例如:
>> f=fullfile(‘D:‘,‘Matlab‘,‘example.txt‘)
f=D:\Matlab\example.txt
(在Windows中,“D:\”表示D盘,“D:”表示目录)
3、 fileparts 功能分离出路径和文件名
函数语法
[pathstr, name, ext] = fileparts(filename)
参数解析
[pathstr, name, ext] = fileparts(filename)
返回指定文件的路径名pathstr,文件名name,扩展名ext。文件filename不一定要存在。filename用单引号括起来。扩展名ext中包含‘.‘这个字符。
用于将一个完整的文件名分割成4部分:路径,文件名,扩展名,版本号。例如:
>> f=fullfile(‘D:‘,‘Matlab‘,‘example.txt‘);
>> [pathstr,name,ext,versn]=fileparts(f)
pathstr=D:\Matlab
name=example
ext=.txt
versn=’’
4、 pathsep
返回当前平台的路径分隔符。Windows是分号(;),Linux是冒号(:)。
5、 exist
可以用于判断目录或者文件是否存在,同时不同的返回值有不同的含义。例如:
>> f=fullfile(‘D:‘,‘Matlab‘,‘example.txt‘);
>> exist(f)
ans=2
>> exist(‘D:\Matlab‘)
ans =7
6、 which
可以通过一个函数或脚本名称得到它的完整路径,同时还能处理函数重载的情况,例如:
>> which abs(0)
C:\MATLAB7\toolbox\matlab\elfun\@double\abs.bi % double method
>> which abs(single(0))
C:\MATLAB7\toolbox\matlab\elfun\@single\abs.bi % single method
7、 isdir
判断一个路径是否代表了一个目录,例如:
>> p=‘D:\Matlab‘;
>> f=fullfile(p,‘example.txt‘);
>> isp=isdir(p)
isp=1
>> isf=isdir(f)
isf=0
8、 dir
用于列出一个目录的内容,返回值为结构体数组类型,包含如下部分:name:文件或目录的名称;date:修改日期;bytes:文件大小;isdir:是否是目录。例如:
>> p=‘D:\Matlab‘;
>> files=dir(p)
files =
8x1 struct array with fields:
name
date
bytes
isdir
9、 cd
用于切换当前工作目录。例如:
>>cd(‘c:/toolbox/matlab/demos‘) %切换当前工作目录到demos
>> cd .. %切换当前工作目录到matlab
10、 pwd
用于当前工作目录的路径。例如:
>> pwd
ans =C:\MATLAB7\work
11、 path
用于对搜索路径的操作。例如:
<<path %查询当前所有的搜索路径(MATLABPATH)
<<p=path %把当前的搜索路径存在字符串变量p中
<<path(‘newpath’) %将当前搜索路径设置为newpath
<< path(path,’newpath’) %向路径添加一个新目录newpath
<< path(’newpath’, path) %向当前搜索路径预加一个新目录nespath
12、 addpath和rmpath
用于对matlab搜索路径的添加和删除。例如:
<<addpath(‘directory’) %将完整路径directory加入到当前搜索路径的最顶端
<<rmpath
13、 what
用于显示出某目录下存在哪些matlab文件;若输入完整路径,可列出指定目录下的文件。例如:
<<what
<< what dirname
<< what(‘dirname’)
其中dirname是要查找的路径的名字,路径在matlab的搜索路径内时,没有必要输入全名,只输入最后或最后两级就够了。
14、 path2rc
保存当前matlab的搜索路径到pathdef.m文件中。
本文章来自:http://blog.sina.com.cn/s/blog_49ea41a20101fobo.html
并行批处理多个文件 matlab,布布扣,bubuko.com
原文地址:http://blog.csdn.net/jiandanjinxin/article/details/30257659