Could anyone explain the code for me ?

file_path = dir(''); fid = fopen(''); pattern_col = 0;
while ~feof(fid)
pattern_col = pattern_col + 1; %coloum increment is 1
exp = []; %initialize the sample data
area_sample = [];
angle_sample = [];
fcontent = fgetl(fid); %get pattern size
pattern_size = fcontent;
fcontent = fgetl(fid); %get time interval
pattern_hour = fcontent;
fcontent = fgetl(fid); %get file path
file_path_disp = fcontent;
file_path = dir(fcontent); %should be specific
file_num = size(file_path, 1);
Could anyone explain the code for me ? It can read a image file ? especially the beginning. file_path = dir(''); fid = fopen('');
Can you make up some example for me ? thanks

4 comentarios

Michael Haderlein
Michael Haderlein el 6 de Ag. de 2014
This code looks incomplete. The first line doesn't make much sense as it is written. dir() returns file/folder names if they match with the argument. So, dir('example*.txt') will return a structure with all files example1.txt, example2.txt and so on (if they exist in the current directory). You can then open them by fopen, such as fid=fopen(file_path(1).name); The '' argument will not open a file and just return -1 (file not found).
In case you get a valid file identifier, you can scroll through the file by the while loop, however, an end is missing here. The initialization lines do not make sense here as they will be rewritten to [] every iteration and not even be touched. The fgetl lines read one line of the file. So first, you read the pattern_size, then the pattern_hour and so on. You then try to find the file named as file_path. Maybe this file should be opened in further lines, but that's not included here.
Hope I could shed some light on this code.
You are right. The code is incomplete because I just post the part I don't understand. I think the missing code is below one. Thanks to both of you, I know the code is to read series of file not single one.
for counter = 1:file_num
cellOutline = imread(file_path(counter).name);
dpb
dpb el 6 de Ag. de 2014
What's missing?
doc imread
for the function.
tabw
tabw el 7 de Ag. de 2014
Editada: tabw el 7 de Ag. de 2014
IF the file is not in current directory
file_path = dir('C:\Users\user\Desktop'); % to Detect png file on Desktop
How to use fopen() to open series of file? say, the file are called text1.txt,text2.txt,text3.txt ...
Actaully,the code is like that
file_path = dir('');
fid = fopen('');
while ~feof(fid)
And I don't know what should I put inside the fopen

Iniciar sesión para comentar.

 Respuesta aceptada

Más respuestas (2)

Image Analyst
Image Analyst el 6 de Ag. de 2014

0 votos

And fclose() is also missing. This will only read an image file if the image file was written out as ASCII text. Otherwise you should use fread() rather than fgetl() to get the pixels out. And that's only if it's some custom format that imread() doesn't know about.

3 comentarios

IF the file is not in current directory
file_path = dir('C:\Users\user\Desktop'); % to Detect png file on Desktop
How to use fopen() to open series of file? say, the file are called text1.txt,text2.txt,text3.txt ...
Actaully,the code is like that
file_path = dir('');
fid = fopen('');
while ~feof(fid)
And I don't know what should I put inside the fopen to open the specific file
dpb
dpb el 7 de Ag. de 2014
Please don't make same comments more than once't--_*most*_ confusing about what is/isn't answered...
Don't use dir() in that case. Just say
folder = pwd; %'C:\Users\user\Desktop'
filePattern = sprintf('%s/*.PNG', folder) % Find PNG image files.
fileNames = dir(filePattern)
for k = 1 : length(fileNames)
thisBaseFileName = fileNames(k).name;
thisFullFileName = fullfile(folder, thisBaseFileName);
fprintf('Now processing %s...\n', thisFullFileName);
end

Iniciar sesión para comentar.

dpb
dpb el 7 de Ag. de 2014
Editada: dpb el 7 de Ag. de 2014
...IF the file is not in current directory...
Then include it in the argument to dir, of course...
file_path = 'C:\Users\user\Desktop';
d=dir(fullfile(file_path,'text*.txt'));
for i=1:length(d)
fid=fopen(fullfile(file_path,d(i).name));
...

2 comentarios

d=dir(fullfile(file_path,'text*.txt'));
??? Undefined function or method 'eq' for input arguments of type 'struct'.
this popped up
dpb
dpb el 7 de Ag. de 2014
My bad...the dir somehow got duplicated in the line defining the directory path...
file_path = dir('C:\Users\user\Desktop');
should, of course, simply be
file_path = 'C:\Users\user\Desktop';
Fixed above, just pointing out the problem.

Iniciar sesión para comentar.

Categorías

Más información sobre File Operations en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 6 de Ag. de 2014

Editada:

dpb
el 7 de Ag. de 2014

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by