How to open a number of directories equal to a number given by a user

1 view (last 30 days)
Im trying to open tif images from a number of directories given by the user in a inputdlg. Afterwards im trying to plot these tif images as a figure. What I cant figure out is how to get a new directory to open for each iteration of the for loop. Any help is appreciated, below is my code:
answer = inputdlg('Enter Number:');
value = str2double(answer{1});
for k = 1:numel(value)
P = uigetdir('C:\');
S = dir(fullfile(P(k),"*.tif"));
F = fullfile(S(k).folder,S(k).name);
[A, R, cmap] = readgeoraster(F(k));
figure
mapshow(A, cmap, R)
end

Accepted Answer

Cris LaPierre
Cris LaPierre on 11 Mar 2025
Edited: Cris LaPierre on 11 Mar 2025
P is not a vector so you do not need to index it. Its value is updated each loop. Just use it as you would outside a loop.
This is also true for S and F.
Also, how many numbers do you expect people to enter? I assume just one. Your code will loop numel(value) times, which should be once. I think you want it to loop value times.
Try this. Note this assumes one tif file per directory. If there are more, you will need a second for loop to load the images one at a time.
answer = inputdlg('Enter Number:');
value = str2double(answer{1});
for k = 1:value
P = uigetdir('C:\');
S = dir(fullfile(P,"*.tif"));
F = fullfile(S.folder,S.name);
[A, R, cmap] = readgeoraster(F);
figure
mapshow(A, cmap, R)
end
  1 Comment
Bradley
Bradley on 11 Mar 2025
The user might enter a 1 or values greater than that, for this specific tool I would guess 3 to 5 would be the number they would want to enter. Your code worked! thank you for your answer.

Sign in to comment.

More Answers (0)

Categories

Find more on Image Data Workflows in Help Center and File Exchange

Tags

Products


Release

R2024b

Community Treasure Hunt

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

Start Hunting!