2016-10-24 4 views
-2

셀 배열은 Matlab (1x149)입니다. 각 셀에는 별도의 .txt 파일의 데이터가 들어 있습니다. 나는 각 셀에 대한 개별 .CSV 파일을 작성하려면 5여러 .csv 파일로 쓰기

[39676x182 double] [39676x182 double] [39676x182 double] [39676x182 double] [39676x182 double] 

통해 .txt 파일

d = dir('*.txt'); 
nfiles = length(d); 
data = cell(1, nfiles); 
for k = 1:nfiles 
data{k} = importdata(d(k).name); 
end 

열 1을로드하려면 다음 코드를 사용했다.

나는 csvwrite을 사용해 보았지만 실제로는 사용할 수없는 큰 파일을 제공합니다. for 루프를 작성하여 각 셀을 별도의 CSV 파일에 작성합니다.

+0

당신은 이것을'R'과'matlab'로 태그를 붙였습니다. 그래서 여러분이 어떤 언어를 쓰는지 정말로 알려줄 필요가 있습니다. 당신이 그것을 셀 배열이라고 부른 이후, 나는 그것이'matlab'이라고 생각하지만, 당신이 질문에 그것을 포함시켜야하고 그것이 관련이 없다면'r' 태그를 제거해야합니다. 또한 이것을 달성하기 위해 이미 시도한 (그러나 작동하지 않은) 것을 포함 시키십시오. 힌트 :'csvwrite'로 시작하십시오. – Barker

+0

'csvwrite'를 루프에 넣으려고 할 때 어떤 일이 일어 났습니까? – excaza

+0

이 방법이 올바른지는 모르겠지만 이것이 내가 가지고있는 것입니다. 'for i = 1:10 csv (i) = csvwrite ('test % d.csv ', data (i : i)) 끝내 '오류가 너무 많은 출력 인수가 –

답변

0

방금 ​​시도하여 문제에 맞는 임의의 숫자를 생성했습니다.

test = mat2cell(randi(50,39676*5,182),[39676,39676,39676,39676,39676],182); 
test = test'; 

저를 제공합니다 :

test = 

    [39676x182 double] [39676x182 double] [39676x182 double] [39676x182 double] [39676x182 double] 

와이를 통해 반복 : 다섯

for i = 1:5 
    csvwrite(strcat('file',num2str(i),'.csv'),test{1,i}) 
end 

결과 * .CSV 파일 (file1.csv, file2.csv, ...). 파일 이름을 얻기 위해 strcat를 사용하면 더 잘 풀릴 수 있지만, 어떻게하는지는 모른다.

+0

이 작동합니다. –

+0

고맙습니다.이 대답을 수락하는 것이 좋을 것입니다. 감사. – RhyminSimon