2011-02-19 9 views
0

txt 파일은 다음과 같습니다.matlab 가져 오기 텍스트 형식

1  1  0  
    2  1  3  
     2  9  
     3 10  
    3  1  1  

을 사용하여 파일을 가져오고 다음 형식을 얻을 때; 실제로 원하는 것은

1 1 0 
2 1 3 
2 9 NaN 
3 10 NaN 
3 1 1 

1  1  0  
    2  1  3  
NaN  2  9  
NaN  3 10  
    3  1  1  

편리한 방법이 있나요입니까? 또는 matlab에 첫 번째 요소가 NaN으로 인식되도록 가져 오기 전에 각 숫자 사이에 tab을 만들어야합니까? 감사!

편집

내가 테스트하고 구분 기호가 tab하고있는 경우 그 형식이 올바른지 발견했다. 다른 쉬운 접근 방법이 궁금합니다. 감사.

답변

2

importdata()은 1 또는 여러 공백을 구분하지 않으므로 첫 번째 숫자로 시작한다고 가정합니다. 탭으로 구분 된 데이터에는이 문제가 없습니다. 데이터 세트를 작성하는 경우 탭 또는 쉼표와 같은 것을 사용하여 데이터를 분리하는 것이 가장 좋습니다. 그래도 textscan()을 사용하여 텍스트 서식 지정 마법을 풀 수 있습니다.

0

이 고정 된 너비 파일로 가져 오기 도구를 통해 작업을 수행하는 것입니다 가져올 수있는 가장 쉬운 방법 :

uiimport(filename); 

당신은 여기에서 코드 (가져 오기 선택 드롭 다운을 선택을 생성하고, 스크립트를 생성 할 수 있습니다 또는 기능). 또한

, 당신은 사용 textscan에서 그것을 읽을 수 있습니다

다음
fid = fopen(filename); 
d = textscan(fid, '%3s%3s%s%[^\n\r]', 'Delimiter', '', 'WhiteSpace', ''); 
fclose(fid); 

당신이 원하는 경우, 숫자 배열을 형성 할 수 :

d2 = cell2mat(cellfun(@(x) str2double(x), d, 'UniformOutput', false));