How can I load multiple tiff files through a loop?
Show older comments
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 Comments
Walter Roberson
on 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
on 13 Mar 2022
Accepted Answer
More Answers (2)
Walter Roberson
on 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 Comments
Mery960
on 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
on 13 Mar 2022
char() of a string scalar gives you a character vector
Voss
on 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 Comments
Image Analyst
on 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
on 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.
Categories
Find more on Convert Image Type in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!