Borrar filtros
Borrar filtros

Saving images inside a loop with changing filename

2 visualizaciones (últimos 30 días)
Levente Gellért
Levente Gellért el 13 de En. de 2023
Comentada: Levente Gellért el 14 de En. de 2023
Dear Community, in a similar situation I would like to save images inside a loop. I do not know why there is an invalid character error in the filename. The filename should look like: actual foldername, Roi and a number.
Please share your suggestions:
Best:
lg
I=rand(20,20);
[~,fo{1,1},~]=fileparts(pwd);
for i=1:10
index=i
imwrite(I,'[ fo{1,1} '_' 'Roi' '_' num2str(index)].tiff')
end

Respuesta aceptada

Matt J
Matt J el 14 de En. de 2023
Editada: Matt J el 14 de En. de 2023
I=rand(20,20);
[~,fo{1,1},~]=fileparts(pwd);
for i=1:10
index=i
imwrite(I, fo{1,1} + "_Roi_" + index + ".tiff" )
end

Más respuestas (1)

Walter Roberson
Walter Roberson el 14 de En. de 2023
Editada: Walter Roberson el 14 de En. de 2023
imwrite(I,'[ fo{1,1} '_' 'Roi' '_' num2str(index)].tiff')
Invalid text character. Check for unsupported symbol, invisible character, or pasting of non-ASCII characters.
You start a character vector. The first character of the vector is the '[' character. The second character is space. The third character is 'f' then 'o' then '{' then '1', ',', '1', '}' then space. You then end the character vector. After that you have an underscore immediately after the end of the character vector . But the underscore is not part of a variable name and is not a valid variable name by itself, and underscore is not a valid operator name. The underscore is invalid there.
I suggest you use
filename = fo{1,1} + "_Roi_" + index + ".tiff"
imwrite(I, filename)
  1 comentario
Levente Gellért
Levente Gellért el 14 de En. de 2023
Dear Walter Robertson, thanks for the detailed explanation! Best lg

Iniciar sesión para comentar.

Community Treasure Hunt

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

Start Hunting!

Translated by