MATLAB-데이터 출력

MATLAB에서 데이터 내보내기 (또는 출력)는 파일에 쓰는 것을 의미합니다. MATLAB을 사용하면 ASCII 파일을 읽는 다른 응용 프로그램에서 데이터를 사용할 수 있습니다. 이를 위해 MATLAB은 여러 데이터 내보내기 옵션을 제공합니다.

다음 유형의 파일을 만들 수 있습니다.

  • 배열의 직사각형 구분 ASCII 데이터 파일.

  • 키 입력 및 결과 텍스트 출력의 일기 (또는 로그) 파일.

  • fprintf와 같은 저수준 함수를 사용하는 특수 ASCII 파일.

  • 특정 텍스트 파일 형식에 쓰는 C / C ++ 또는 Fortran 루틴에 액세스하기위한 MEX 파일.

이 외에도 데이터를 스프레드 시트로 내보낼 수도 있습니다.

구분 된 ASCII 데이터 파일로 숫자 배열을 내보내는 방법에는 두 가지가 있습니다.

  • 사용 save 함수 및 지정 -ascii 한정자

  • 사용 dlmwrite 함수

저장 기능을 사용하는 구문은 다음과 같습니다.

save my_data.out num_array -ascii

여기서 my_data.out 은 생성 된 구분 된 ASCII 데이터 파일이고 num_array 는 숫자 배열이며 −ascii 지정자입니다.

사용 구문 dlmwrite 함수는-

dlmwrite('my_data.out', num_array, 'dlm_char')

여기서 my_data.out 은 생성 된 구분 된 ASCII 데이터 파일이고, num_array 는 숫자 배열이며 dlm_char 는 구분 문자입니다.

다음 예제는 개념을 보여줍니다. 스크립트 파일을 만들고 다음 코드를 입력하십시오-

num_array = [ 1 2 3 4 ; 4 5 6 7; 7 8 9 0];
save array_data1.out num_array -ascii;
type array_data1.out
dlmwrite('array_data2.out', num_array, ' ');
type array_data2.out

파일을 실행하면 다음 결과가 표시됩니다.

1.0000000e+00   2.0000000e+00   3.0000000e+00   4.0000000e+00
   4.0000000e+00   5.0000000e+00   6.0000000e+00   7.0000000e+00
   7.0000000e+00   8.0000000e+00   9.0000000e+00   0.0000000e+00

1 2 3 4
4 5 6 7
7 8 9 0

save -ascii 명령과 dlmwrite 함수는 입력으로 셀형 배열에서 작동하지 않습니다. 셀형 배열의 내용에서 구분 된 ASCII 파일을 만들려면 다음을 수행 할 수 있습니다.

  • 또는 다음을 사용하여 셀형 배열을 행렬로 변환합니다. cell2mat 함수

  • 또는 저수준 파일 I / O 함수를 사용하여 셀형 배열을 내 보냅니다.

사용하는 경우 save 문자 배열을 ASCII 파일에 쓰는 함수는 문자에 해당하는 ASCII를 파일에 씁니다.

예를 들어 'hello'라는 단어를 파일에 씁니다.

h = 'hello';
save textdata.out h -ascii
type textdata.out

MATLAB은 위의 문을 실행하고 다음 결과를 표시합니다. 8 자리 ASCII 형식의 'hello'문자열의 문자입니다.

1.0400000e+02   1.0100000e+02   1.0800000e+02   1.0800000e+02   1.1100000e+02

일기 파일에 쓰기

일기 파일은 MATLAB 세션의 활동 로그입니다. 다이어리 기능은 그래픽을 제외하고 디스크 파일에 세션의 정확한 사본을 생성합니다.

일기 기능을 켜려면 다음을 입력하십시오.

diary

선택적으로 로그 파일의 이름을 지정할 수 있습니다.

diary logdata.out

일기 기능을 끄려면-

diary off

텍스트 편집기에서 일기 파일을 열 수 있습니다.

저수준 I / O를 사용하여 데이터를 텍스트 데이터 파일로 내보내기

지금까지 숫자 형 배열을 내보냈습니다. 그러나 숫자와 문자 데이터의 조합, 직사각형이 아닌 출력 파일 또는 ASCII가 아닌 인코딩 체계가있는 파일을 포함하여 다른 텍스트 파일을 만들어야 할 수도 있습니다. 이러한 목적을 위해 MATLAB은 낮은 수준의fprintf 함수.

저수준 I / O 파일 활동에서와 같이 내보내기 전에 다음을 사용하여 파일을 열거 나 만들어야합니다. fopen함수를 사용하고 파일 식별자를 가져옵니다. 기본적으로 fopen은 읽기 전용 액세스를 위해 파일을 엽니 다. 쓰기 또는 추가 권한을 지정해야합니다 (예 : 'w'또는 'a').

파일을 처리 한 후 다음을 사용하여 닫아야합니다. fclose(fid) 함수.

다음 예제는 개념을 보여줍니다-

스크립트 파일을 만들고 그 안에 다음 코드를 입력하십시오-

% create a matrix y, with two rows
x = 0:10:100;
y = [x; log(x)];
 
% open a file for writing
fid = fopen('logtable.txt', 'w');
 
% Table Header
fprintf(fid, 'Log     Function\n\n');
 
% print values in column order
% two values appear on each row of the file
fprintf(fid, '%f    %f\n', y);
fclose(fid);

% display the file created
type logtable.txt

파일을 실행하면 다음 결과가 표시됩니다.

Log         Function

0.000000    -Inf
10.000000    2.302585
20.000000    2.995732
30.000000    3.401197
40.000000    3.688879
50.000000    3.912023
60.000000    4.094345
70.000000    4.248495
80.000000    4.382027
90.000000    4.499810
100.000000    4.605170