2011-12-31 5 views
0

추출해야하고 새 텍스트 파일에 삽입해야하는 데이터가 포함 된 큰 텍스트 파일이 있습니다. 이 데이터를 셀/매트릭스 배열에 저장해야 할 필요가 있을까요?matlab에 텍스트 파일을 열고 matlab에서 파일을 저장하십시오.

하지만 지금 당장의 질문은 작은 데이터 세트를 테스트하여 아래 코드가 작동하는지 확인하는 것입니다.

텍스트 파일을 열고 스캔하여 데이터를 복제 한 다음 "output.txt"라는 다른 텍스트 파일에 저장하는 코드가 있습니다.

문제점 : 파일을 제대로 저장하지 못하는 것 같습니다. 텍스트 파일에 빈 배열 (예 : " [] ") 만 표시됩니다. 원본 텍스트 파일에는 문자열 만 포함됩니다.

%opens the text file and checks it line by line. 
fid1 = fopen('sample.txt'); 
tline = fgetl(fid1); 
while ischar(tline) 
    disp(tline); 
    tline = fgetl(fid1); 
end 
fclose(fid1); 


% save the sample.txt file to a new text fie 
fid = fopen('output.txt', 'w'); 
fprintf(fid, '%s %s\n', fid1); 
fclose(fid); 

% view the contents of the file 
type exp.txt 

여기서부터?

+0

어떤 OS입니까? 32 또는 64 비트? 이 페이지는 도움이됩니다. 증가 스왑 부분으로 이동 http://www.mathworks.com/support/tech-notes/1100/1106.html –

+0

64 비트 시스템이고 페이징 파일 크기를 사용자 정의 크기, 시스템 관리 크기로 설정하려면 어떻게해야합니까? , 또는 페이징 파일이 없습니까? – Jeiman

+0

수행 한 단계를 제시하십시오. 텍스트 파일을 열기위한 코드를 작성 했습니까? 또는 편집기를 사용하여 텍스트 파일을 열었습니까? –

답변

5

모든 내용을 메모리에 한 번에로드하여 입력 파일을 읽는 것은 좋지 않습니다. 이 방법으로 읽을 수있는 파일 크기는 컴퓨터의 메모리 크기 (또는 OS가 단일 프로세스에 할당하려는 메모리 양)에 의해 제한됩니다.

대신 파일을 한 줄씩 읽거나 char-by-char을 읽으려면 fopen 및 관련 함수를 사용하십시오. 예를 들어

물론

fid1 = fopen('sample.txt', 'r'); 
fid = fopen('output.txt', 'w'); 

tline = fgetl(fid1); 
while ischar(tline) 
    fprintf(fid, '%s\n', tline); 
    tline = fgetl(fid1);  
end 

fclose(fid1); 
fclose(fid); 

type output.txt 

, 당신은 입력 파일이 결코 크게 않을 것을 미리 알고 있다면, 당신은 한 번 textread 또는 일부 동등한 기능에 의해 사용에서 모두 읽을 수 있습니다.

+0

파일을 열려면 함수가 필요하고 명령 창에서이 함수를 호출해야합니까? 그렇다면 m 파일에서 함수를 어떻게 호출할까요? 고맙습니다. – Jeiman

+1

모든 파일을 m 파일로 작성하고 명령 행에서만 호출하는 것이 좋습니다. 따라서 m- 파일에는 출력 파일에 다른 fopen을 추가하고 루프 내부에 쓰기를위한 논리를 추가하여 예제에서 설명한 것과 비슷한 코드를 포함해야합니다. –

+0

기본적으로 파일을 열고 셀 또는 행렬 배열에 저장하려고합니다.거기에서, 내가 필요로하는대로 데이터를 조작하고 싶습니다. 그런 다음 조작 된 데이터를 다른 텍스트 파일에 저장하십시오. 내가 어떻게 그 일을하는거야? – Jeiman

2

텍스트 파일에서 데이터를 읽고 매트릭스 또는 셀 배열로 저장합니다. 하루가 끝나면 데이터를 변수에 저장하여 필요에 따라 데이터를 조작해야한다고 가정합니다. 조작이 완료되면 fopen을 사용하여 파일을 열고 fprintf을 사용하여 원하는 형식으로 데이터를 작성하십시오.

+0

기본적으로 파일을 열고 셀 또는 행렬 배열에 저장하려고합니다. 거기에서, 내가 필요로하는대로 데이터를 조작하고 싶습니다. 그런 다음 조작 된 데이터를 다른 텍스트 파일에 저장하십시오. 내가 어떻게 그 일을하는거야? – Jeiman

관련 문제