Saving images inside a loop with changing filename

2 Ansichten (letzte 30 Tage)
Levente Gellért
Levente Gellért am 13 Jan. 2023
Kommentiert: Levente Gellért am 14 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

Akzeptierte Antwort

Matt J
Matt J am 14 Jan. 2023
Bearbeitet: Matt J am 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

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 14 Jan. 2023
Bearbeitet: Walter Roberson am 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 Kommentar
Levente Gellért
Levente Gellért am 14 Jan. 2023
Dear Walter Robertson, thanks for the detailed explanation! Best lg

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Images finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by