Saving images inside a loop with changing filename

3 vues (au cours des 30 derniers jours)
Levente Gellért
Levente Gellért le 13 Jan 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

Réponse acceptée

Matt J
Matt J le 14 Jan 2023
Modifié(e) : Matt J le 14 Jan 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

Plus de réponses (1)

Walter Roberson
Walter Roberson le 14 Jan 2023
Modifié(e) : Walter Roberson le 14 Jan 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 commentaire
Levente Gellért
Levente Gellért le 14 Jan 2023
Dear Walter Robertson, thanks for the detailed explanation! Best lg

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by