How to open a number of directories equal to a number given by a user
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
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
0 Commenti
Risposta accettata
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
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Image Data Workflows in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!