I dont understand this code with dir and sprintf

3 visualizaciones (últimos 30 días)
Zahra  S. Abd Al-Hassan
Zahra S. Abd Al-Hassan el 2 de Mayo de 2017
Comentada: Stephen23 el 3 de Mayo de 2017
Hey
I want to convert mat-files and my supervisor gave me this matlab-code to do it with. I am not sure I understand it fully, can you help?

Respuesta aceptada

Walter Roberson
Walter Roberson el 2 de Mayo de 2017
Editada: Stephen23 el 3 de Mayo de 2017
1) Do not use "path" as a variable name, as doing that interferes with using the MATLAB path.
2) Instead of
files = dir(sprintf('%s/%s/*.mat', path, hemi(ee))
use
files = dir( fullfile(path, hemi(ee), '*.mat') )
and later when the file name is being constructed, use fullfile() then as well.
3)
sprintf([''], ii, segment)
is going to result in the empty vector because of the empty format '' . The purpose of that code is confusing.
4) it really looks to me as if the code for filesB and B is wrong. Different directories are being referred to in the different lines.
  2 comentarios
Zahra  S. Abd Al-Hassan
Zahra S. Abd Al-Hassan el 2 de Mayo de 2017
Editada: Zahra S. Abd Al-Hassan el 2 de Mayo de 2017
What does ‰s means? And what does segment='name' represent? is it and cell array or a mat.file a should save before matlab can understand it?
Walter Roberson
Walter Roberson el 3 de Mayo de 2017
%s means that a string should be read from the next available parameter and transfered to the output as characters.
segment = 'name'
means that at some point in the development of the program, there was a directory that was named either literally 'name' or else name with a numeric prefix, such as '1name', '2name' and so on. But with the [''] format of the sprintf() the content of the segment variable is being ignored.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre File Operations en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by