2017-03-10 1 views
0

나는 이것이 분명하지만 인터넷에서 해결책을 찾을 수 없습니다 확신 ... 매트랩Matlab에서 복수 응답을리스트에 결합하는 방법은 무엇입니까?

내가 이렇게 :

나는 모든 파일 이름을 저장할
> list = dir('some_directory'); 
> list 

list = 
    3×1 struct array with fields: 
    name 
    folder 
    date 
    bytes 
    isdir 
    datenum 

명부. 내가 list.name를 호출하면 난 그냥 복수 응답

> list.name 
ans = 
some_file_1.mat 

ans = 
some_file_2.mat 

ans = 
some_file_3.mat 

내가 이것을 시도했지만이

> dirlist = list.name 
ans = 
some_file_1.mat 
다음

나는이 시도 작동하지 않았고, 그것이 작동하지 않았다

를 얻을 수

> dirlist = [list.name] 
ans = 
some_file_1.matsome_file_2.matsome_file_3.mat 

답변

4

목록을 셀에 저장할 수 있습니다.

dirlist = {list.name}; 

당신은 다음과 같은 각 개별 항목을 호출 할 수 있습니다

dirlist{1}; 
... 
dirlist{20}; 
etc.. 

편집 :

list(1).name; 
... 
list(20).name; 
etc... 

당신은 심지어 변수 name을 절약 할 수있다 : 은 또한 당신은 또한 초기 구조의 개별 요소에 액세스 할 수 있습니다 이 변수 만 포함하는 새로운 구조에서 :

dirlist = struct('name',{list.name}); 
+0

내 문제가 해결되었지만 여전히 느낌 왜 목록 및 셀 경우에 대한 동작 matlab – gota

+0

변수'목록',이 경우, 구조 이해가 안 돼요. 구조의 다른 요소에 액세스하려면 구조의 항목을 호출해야합니다. 따라서 항목 1에 액세스하려면 'list (1) .name' 이 첫 번째 항목을 생성합니다. 따라서 셀 대신 해당 셀을 사용하거나 필요없는 필드가없는 새 구조에 _name_의 구조를 저장할 수 있습니다. 문자열 길이가 다르므로 행렬에 집계 할 수 없으므로 벡터로 시도한 작업이 작동하지 않습니다. – Giezi

관련 문제