Main Content

fwrite

이진 파일(Binary File)에 데이터 쓰기

설명

예제

fwrite(fileID,A)는 배열 A의 요소를 이진 파일에 열 순서대로 8비트의 부호 없는 정수로 씁니다. 파일 ID fileID로 이진 파일을 지정합니다. fileID 값은 fopen으로 파일을 열어 구할 수 있습니다. 쓰기가 끝나면 fclose(fileID)를 호출하여 파일을 닫습니다.

예제

fwrite(fileID,A,precision)A의 값을 precision으로 설명되는 형식과 크기로 씁니다.

fwrite(fileID,A,precision,skip)은 각 값을 쓰기 전에 skip으로 지정된 바이트 수 또는 비트 수를 건너뜁니다.

예제

fwrite(fileID,A,precision,skip,machinefmt)은 파일에 바이트 또는 비트를 쓰는 순서를 지정합니다. skip 인수는 선택 사항입니다.

count = fwrite(___)fwrite가 파일에 성공적으로 쓴 A 요소의 개수를 반환합니다. 이 구문은 위에 열거된 구문 중 하나의 입력 인수에 사용할 수 있습니다.

예제

모두 축소

쓰려는 파일 nine.bin을 엽니다. fopen 호출 시 'w'를 사용하여 쓰기 권한을 지정합니다.

fileID = fopen('nine.bin','w');

fopen은 파일 ID fileID를 반환합니다.

1에서 9까지의 정수를 8비트의 부호 없는 정수로 씁니다.

fwrite(fileID,[1:9]);

파일을 닫습니다.

fclose(fileID);

쓰려는 파일 magic5.bin을 엽니다.

fileID = fopen('magic5.bin','w');

5×5 마방진의 25개 요소를 씁니다. precision 인수 'integer*4'를 사용하여 4바이트 정수를 씁니다.

fwrite(fileID,magic(5),'integer*4');

파일을 닫습니다.

fclose(fileID);

배정밀도 부동소수점 숫자로 저장된, 4×4 마방진의 요소를 포함하는 이진 파일을 씁니다.

fileID = fopen('magic4.bin','w');
fwrite(fileID,magic(4),'double');
fclose(fileID);

파일에 데이터 추가를 가능하게 하는 쓰기 권한을 사용하여 파일 magic4.bin을 엽니다. fopen 호출 시 파일 액세스 유형 'a'를 지정합니다.

fileID = fopen('magic4.bin','a');

파일에 0으로 이루어진 4×4 행렬을 추가합니다. 그런 다음 파일을 닫습니다.

fwrite(fileID,zeros(4),'double');
fclose(fileID);

빅 엔디안 시스템에서 사용할 수 있도록 파일 myfile.bin에 배정밀도 난수를 씁니다. fwrite 호출 시 'ieee-be'machinefmt 값을 지정하여 빅 엔디안 바이트 순서를 나타냅니다.

fileID = fopen('myfile.bin','w');
fwrite(fileID,rand(4),'double','ieee-be');
fclose(fileID);

입력 인수

모두 축소

파일 ID로, fopen에서 가져온 정수로 지정됩니다. 표준 출력(화면)의 경우에는 1, 표준 오류의 경우에는 2로 지정됩니다.

쓰려는 데이터로, 숫자형 배열, 문자형 배열 또는 string형 배열로 지정됩니다.

fwrite는 문자형 데이터 또는 string형 데이터의 쓰기를 지원하지만, 이렇게 할 경우 예기치 않은 동작이 발생할 수 있으므로 권장되지 않습니다.

fwrite를 사용하여 문자형 데이터 또는 string형 데이터를 쓸 경우 fopen을 호출할 때 텍스트 인코딩을 지정하여 읽거나 쓰기 위한 파일을 연 다음 정밀도를 char로 지정하십시오.

예: [1,2,3;4,5,6]

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string
복소수 지원 여부:

쓰려는 값의 클래스 및 크기(비트 수)로, 다음 정밀도 열에 나열된 문자형 벡터 또는 string형 스칼라 중 하나로 지정됩니다.

값 유형정밀도비트(바이트)

정수, 부호 없음

'uint'

32 (4)

'uint8'

8 (1)

'uint16'

16 (2)

'uint32'

32 (4)

'uint64'

64 (8)

'uchar'

8 (1)

'unsigned char'

8 (1)

'ushort'

16 (2)

'ulong'

32 (4)

'ubitn'

1n64

정수, 부호 있음

'int'

32 (4)

'int8'

8 (1)

'int16'

16 (2)

'int32'

32 (4)

'int64'

64 (8)

'integer*1'

8 (1)

'integer*2'

16 (2)

'integer*4'

32 (4)

'integer*8'

64 (8)

'schar'

8 (1)

'signed char'

8 (1)

'short'

16 (2)

'long'

32 (4)

'bitn'

1n64

부동소수점 숫자

'single'

32 (4)

'double'

64 (8)

'float'

32 (4)

'float32'

32 (4)

'float64'

64 (8)

'real*4'

32 (4)

'real*8'

64 (8)

문자

'char*1'

8 (1)

'char'

MATLAB®char형은 고정된 크기가 아니며, 바이트 수는 파일과 연결된 인코딩 체계에 따라 달라집니다. fopen을 사용하여 인코딩을 설정합니다.

bitn 또는 ubitn으로 정밀도가 지정된 경우 fwrite는 범위 밖에 있는 모든 값에 대해 포화(Saturate)됩니다.

참고

MATLAB에 NaNInf 값을 유지하려면 double형 또는 single형 클래스의 데이터를 읽고 쓰십시오.

각 값을 쓰기 전에 건너뛸 바이트 수로, 스칼라로 지정됩니다. bitn 또는 ubitn으로 precision을 지정하는 경우 skip을 비트 단위로 지정해야 합니다.

skip 인수를 사용하여 고정 길이 레코드의 비연속 필드에 데이터를 삽입할 수 있습니다.

파일 내에 바이트를 쓰는 순서로, 다음 표의 문자형 벡터 또는 string형 스칼라 중 하나로 지정됩니다. bitnubitn 정밀도의 경우, machinefmt는 바이트 내 비트를 쓰는 순서를 지정하지만 바이트를 쓰는 순서는 시스템 바이트 순서에 따릅니다.

'n' 또는 'native'

시스템 바이트 순서(디폴트 값)

'b' 또는 'ieee-be'

빅 엔디안 순서

'l' 또는 'ieee-le'

리틀 엔디안 순서

's' 또는 'ieee-be.l64'

빅 엔디안 순서, 64비트 long 데이터형

'a' 또는 'ieee-le.l64'

리틀 엔디안 순서, 64비트 long 데이터형

기본적으로, 현재 지원되는 플랫폼은 모두 새 파일에 리틀 엔디안 순서를 사용합니다. 기존의 이진 파일은 빅 엔디안 또는 리틀 엔디안 순서를 사용할 수 있습니다.

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장