루프

2017-11-15 14 views
-1

에 CSV 파일로 매트 파일에서 필드 저장 I은 15 개 필드 (예를 들면, cgb, stpAB, stpAC, stAB 등)와 .mat 파일 file_0_50_abcdef_ft.mat 있고,이 (15 개)의 각 필드가 구성된다. 첫 번째 구조에서 하나의 필드 (cgb.ch)와 다른 14 개 구조의 두 필드 (동일한 레이블) (즉, poscllabmatnegcllabmat)를 추출해야합니다.루프

압축을 풀면 별도의 .csv 파일로 저장해야합니다. 내가 얻고 자하는 결과는 예를 들면 다음과 같습니다 : cgb_ch.csv, stpAB_poscllabmat_0_50.csv, stpAB_negcllabmat_0_50.csv, stpAC_poscllabmat_0_50.csv, stpAC_negcllabmat_0_50.csv, 등등.

이것을 달성하는 가장 좋은 방법은 무엇입니까? 여러 .mat 파일에 대해이 작업을 수행해야합니다.

+0

가능한 [Matlab에서 매트 파일의 다른 구조에 기반한 행렬 만들기] 가능한 복제본 (https://stackoverflow.com/questions/47292228/create-matrix-based-on-different-structures-of-mat-file- in-matlab) – excaza

답변

1

변수/필드 조합을 반복하고 파일 이름을 만들고 동적 필드 이름을 사용하여 데이터에 액세스 한 다음 csvwrite에 입력합니다. 이 같은

뭔가 :

temp = load('file_0_50_abcdef_ft.mat'); 
varList = {'cgb', 'stpAB', 'stpAC'}; 
subField = {{'ch'}, {'poscllabmat', 'negcllabmat'}, {'poscllabmat', 'negcllabmat'}}; 
for j = 1:numel(varList) 
    for k = 1:numel(subField{j}) 
     fileName = [varList{j} '_' subField{j}{k} '.csv']; 
     csvwrite(fileName,temp.(varList{j}).(subField{j}{k})); 
    end 
end 

참고 : 모든 검사 오류가 없습니다. 매트 파일에 변수가 없거나 구조 중 하나에 필드가없는 경우 오류가 발생합니다.