MATLAB: How can i use parallel i/o??? help me plz

filei/oMATLABmatrix

my code
path_directory='C:\Users\KimJS\Desktop';
boximg=[path_directory '/3.jpg'];
fnames=dir('C:\Users\KimJS\Desktop\surf');
boxImage = imread(boximg);
boxImage = rgb2gray(boxImage);
boxPoints = detectSURFFeatures(boxImage);
[boxFeatures, boxPoints] = extractFeatures(boxImage, boxPoints);
dlmwrite('box_txt.txt',boxFeatures);
box_txt = dlmread('box_txt.txt');
for j = 1:length(fnames)
[pathstr,name,ext] = fileparts(fnames(j).name);
if (strcmpi(ext,'.txt'))
scene = strcat('C:\Users\KimJS\Desktop\surf\',name,'.txt')
scene_txt = dlmread(scene);
boxPairs = matchFeatures(box_txt,scene_txt);
if(length(boxPairs)>80)
fprintf(" anser %s \n", fnames(j).name)
break
end
end
end
Perform dlread on array text. Read and compare different files for each loop. can i more faster i/o/??

Best Answer

path_directory='C:\Users\KimJS\Desktop';
boximg=[path_directory '/3.jpg'];
fnames=dir('C:\Users\KimJS\Desktop\surf');
boxImage = imread(boximg);
boxImage = rgb2gray(boxImage);
boxPoints = detectSURFFeatures(boxImage);
[boxFeatures, boxPoints] = extractFeatures(boxImage, boxPoints);
dlmwrite('box_txt.txt',boxFeatures);
box_txt = dlmread('box_txt.txt');
num_names = length(fnames);
outputs = cell(1, num_names)
parfor j = 1 : num_names
[pathstr,name,ext] = fileparts(fnames(j).name);
if (strcmpi(ext,'.txt'))
scene = strcat('C:\Users\KimJS\Desktop\surf\',name,'.txt')
scene_txt = dlmread(scene);
boxPairs = matchFeatures(box_txt,scene_txt);
if(length(boxPairs)>80)
outputs{j} = fnames(j).name;
else
outputs{j} = [];
end
else
outputs{j} = [];
end
end
num_outputs = 0;
for j = 1 : num_names
if ~isempty(outputs{j})
fprintf(' anser %s \n', outputs{j});
num_outputs = num_outputs + 1;
end
end
if num_outputs == 0
fprintf('No anser\n');
end