Save char array from for loop into a matrix
30 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Devarshi Patel
am 5 Jun. 2019
Bearbeitet: Adam Danz
am 6 Jun. 2019
names=4;
for i = 1:names
totalnames = filename{indx};
end
where filename is a cell array of a list of 4 file names and indx is the location of the files that the user selected from the list dialog box. I am trying to store the names of the files that the user chose through the for loop into a matrix. Can someone please help me out with this?
0 Kommentare
Akzeptierte Antwort
TADA
am 5 Jun. 2019
Bearbeitet: TADA
am 5 Jun. 2019
Unless you can guarantee that all file names have the exact same length, you need to use something other than a char matrix. Either a cell array, or a string array:
names=4;
totalnames = cell(1,names);
for i = 1:names
totalnames{i} = filename{indx};
end
2 Kommentare
Adam Danz
am 5 Jun. 2019
Bearbeitet: Adam Danz
am 5 Jun. 2019
That's because you're using the same indx on each loop iteration. The indx value doesn't change in this for-loop. If indx is a vector, you don't need a loop (try out my answer). If indx is not a vector, you should tell us more about that variable.
Weitere Antworten (1)
Adam Danz
am 5 Jun. 2019
Bearbeitet: Adam Danz
am 6 Jun. 2019
No need to use a loop. If filenames is a cell array of strings and indx is a logical vectory (or linear index vector), you just need to do this:
totalnames = filename(indx);
If you need it to be a char array, run the line above and then this line:
totalnamesArray = strjoin(filenames,'\n');
0 Kommentare
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!