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

1 visualizzazione (ultimi 30 giorni)
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

Risposta accettata

Cris LaPierre
Cris LaPierre il 11 Mar 2025
Modificato: Cris LaPierre il 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 Commento
Bradley
Bradley il 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.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Image Data Workflows in Help Center e File Exchange

Tag

Prodotti


Release

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by