How can I load multiple tiff files through a loop?
Afficher commentaires plus anciens
I am trying to load multiple tiff files like this:
for i=66:96
LSTday=strcat('Research\MODIS\MOD11A1\MOD11A1.006_LST_Day_1km_doy20101',string(i));
end
but, I keep getting imread error: Error using imread>parse_inputs (line 450)
The file name or URL argument must be a character vector.
Can anyone kindly help me what is the issue?
2 commentaires
Walter Roberson
le 13 Mar 2022
Which MATLAB release are you using? There were a small number of releases after string() was introduced but before imread() recognized it.
Mery960
le 13 Mar 2022
Réponse acceptée
Plus de réponses (2)
Walter Roberson
le 13 Mar 2022
0 votes
In R2018a, imread() requires a character vector, not a string() object.
The first release that supported string objects for file names was R2018b, the release after you have.
3 commentaires
Mery960
le 13 Mar 2022
"Is there any other function I can use to read the string file in a loop then?"
Use a character vector rather than a string, just as Walter Roberson wrote.
"I have way too many data to load."
The MATLAB documentation show how to load multiple files. Note that it recommends SPRINTF:
Walter Roberson
le 13 Mar 2022
char() of a string scalar gives you a character vector
Voss
le 14 Mar 2022
In place of the code you posted, do this:
file_name_prefix = 'Research\MODIS\MOD11A1\MOD11A1.006_LST_Day_1km_doy20101';
for i = 66:96
LSTday = sprintf('%s%d',file_name_prefix,i);
end
And use LSTday the same as you are already doing in the rest of the code, e.g., using it in imread().
2 commentaires
Image Analyst
le 15 Mar 2022
Except that I think you really meant to use fullfile() which is more robust since it doesn't care if the folder ends with a slash or not - it will always get it right.
Voss
le 15 Mar 2022
Well, I didn't want to assume that 'MOD11A1.006_LST_Day_1km_doy20101' is a directory when it might be part of the file names, e.g., file names might be:
- MOD11A1.006_LST_Day_1km_doy2010166
- MOD11A1.006_LST_Day_1km_doy2010167
- etc.
OP has reported: "Researcj\MODIS\MOD11A1\MOD11A1.006_LST_Day_1km_doy20101\96.tiff does not exist." but that could be for any one of a number of reasons.
Catégories
En savoir plus sur Convert Image Type dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!