필터 지우기
필터 지우기

Save char array from for loop into a matrix

조회 수: 25 (최근 30일)
Devarshi Patel
Devarshi Patel 2019년 6월 5일
편집: Adam Danz 2019년 6월 6일
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?

채택된 답변

TADA
TADA 2019년 6월 5일
편집: TADA 2019년 6월 5일
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
Devarshi Patel
Devarshi Patel 2019년 6월 5일
I am getting the same name in all the cells in the totalnames array, would you know any solution to that?
Adam Danz
Adam Danz 2019년 6월 5일
편집: Adam Danz 2019년 6월 5일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Adam Danz
Adam Danz 2019년 6월 5일
편집: Adam Danz 2019년 6월 6일
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');

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

제품


릴리스

R2016b

Community Treasure Hunt

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

Start Hunting!

Translated by