MATLAB 도움말 센터
이진 파일(Binary File)에 데이터 쓰기
fwrite(fileID,A)
fwrite(fileID,A,precision)
fwrite(fileID,A,precision,skip)
fwrite(fileID,A,precision,skip,machinefmt)
count = fwrite(___)
fwrite(fileID,A)는 배열 A의 요소를 이진 파일에 열 순서대로 8비트의 부호 없는 정수로 씁니다. 파일 ID fileID로 이진 파일을 지정합니다. fileID 값은 fopen으로 파일을 열어 구할 수 있습니다. 쓰기가 끝나면 fclose(fileID)를 호출하여 파일을 닫습니다.
fileID
A
fopen
fclose(fileID)
예제
fwrite(fileID,A,precision)은 A의 값을 precision으로 설명되는 형식과 크기로 씁니다.
precision
fwrite(fileID,A,precision,skip)은 각 값을 쓰기 전에 skip으로 지정된 바이트 수 또는 비트 수를 건너뜁니다.
skip
fwrite(fileID,A,precision,skip,machinefmt)은 파일에 바이트 또는 비트를 쓰는 순서를 지정합니다. skip 인수는 선택 사항입니다.
machinefmt
count = fwrite(___)는 fwrite가 파일에 성공적으로 쓴 A 요소의 개수를 반환합니다. 이 구문은 위에 열거된 구문 중 하나의 입력 인수에 사용할 수 있습니다.
fwrite
모두 축소
쓰려는 파일 nine.bin을 엽니다. fopen 호출 시 'w'를 사용하여 쓰기 권한을 지정합니다.
nine.bin
'w'
fileID = fopen('nine.bin','w');
fopen은 파일 ID fileID를 반환합니다.
1에서 9까지의 정수를 8비트의 부호 없는 정수로 씁니다.
fwrite(fileID,[1:9]);
파일을 닫습니다.
fclose(fileID);
쓰려는 파일 magic5.bin을 엽니다.
magic5.bin
fileID = fopen('magic5.bin','w');
5×5 마방진의 25개 요소를 씁니다. precision 인수 'integer*4'를 사용하여 4바이트 정수를 씁니다.
'integer*4'
fwrite(fileID,magic(5),'integer*4');
배정밀도 부동소수점 숫자로 저장된, 4×4 마방진의 요소를 포함하는 이진 파일을 씁니다.
fileID = fopen('magic4.bin','w'); fwrite(fileID,magic(4),'double'); fclose(fileID);
파일에 데이터 추가를 가능하게 하는 쓰기 권한을 사용하여 파일 magic4.bin을 엽니다. fopen 호출 시 파일 액세스 유형 'a'를 지정합니다.
magic4.bin
'a'
fileID = fopen('magic4.bin','a');
파일에 0으로 이루어진 4×4 행렬을 추가합니다. 그런 다음 파일을 닫습니다.
fwrite(fileID,zeros(4),'double'); fclose(fileID);
빅 엔디안 시스템에서 사용할 수 있도록 파일 myfile.bin에 배정밀도 난수를 씁니다. fwrite 호출 시 'ieee-be'의 machinefmt 값을 지정하여 빅 엔디안 바이트 순서를 나타냅니다.
myfile.bin
'ieee-be'
fileID = fopen('myfile.bin','w'); fwrite(fileID,rand(4),'double','ieee-be'); fclose(fileID);
파일 ID로, fopen에서 가져온 정수로 지정됩니다. 표준 출력(화면)의 경우에는 1, 표준 오류의 경우에는 2로 지정됩니다. fwrite는 인터넷 URL에 쓰는 것을 지원하지 않습니다.
1
2
쓰려는 데이터로, 숫자형 배열, 문자형 배열 또는 string형 배열로 지정됩니다.
fwrite는 문자형 데이터 또는 string형 데이터의 쓰기를 지원하지만, 이렇게 할 경우 예기치 않은 동작이 발생할 수 있으므로 권장되지 않습니다.
fwrite를 사용하여 문자형 데이터 또는 string형 데이터를 쓸 경우 fopen을 호출할 때 텍스트 인코딩을 지정하여 읽거나 쓰기 위한 파일을 연 다음 정밀도를 char로 지정하십시오.
char
예: [1,2,3;4,5,6]
[1,2,3;4,5,6]
데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string 복소수 지원 여부: 예
single
double
int8
int16
int32
int64
uint8
uint16
uint32
uint64
logical
string
'uint8'
쓰려는 값의 클래스 및 크기(비트 수)로, 다음 정밀도 열에 나열된 문자형 벡터 또는 string형 스칼라 중 하나로 지정됩니다.
정수, 부호 없음
'uint'
32 (4)
8 (1)
'uint16'
16 (2)
'uint32'
'uint64'
64 (8)
'uchar'
'unsigned char'
'ushort'
'ulong'
'ubitn'
n
1 ≤ n ≤ 64
64
정수, 부호 있음
'int'
'int8'
'int16'
'int32'
'int64'
'integer*1'
'integer*2'
'integer*8'
'schar'
'signed char'
'short'
'long'
'bitn'
부동소수점 숫자
'single'
'double'
'float'
'float32'
'float64'
'real*4'
'real*8'
문자
'char*1'
'char'
MATLAB®char형은 고정된 크기가 아니며, 바이트 수는 파일과 연결된 인코딩 체계에 따라 달라집니다. fopen을 사용하여 인코딩을 설정합니다.
bitn 또는 ubitn으로 정밀도가 지정된 경우 fwrite는 범위 밖에 있는 모든 값에 대해 포화(Saturate)됩니다.
bitn
ubitn
참고
MATLAB에 NaN 및 Inf 값을 유지하려면 double형 또는 single형 클래스의 데이터를 읽고 쓰십시오.
NaN
Inf
각 값을 쓰기 전에 건너뛸 바이트 수로, 스칼라로 지정됩니다. bitn 또는 ubitn으로 precision을 지정하는 경우 skip을 비트 단위로 지정해야 합니다.
skip 인수를 사용하여 고정 길이 레코드의 비연속 필드에 데이터를 삽입할 수 있습니다.
'n'
'b'
'l'
's'
파일 내에 바이트를 쓰는 순서로, 다음 표의 문자형 벡터 또는 string형 스칼라 중 하나로 지정됩니다. bitn 및 ubitn 정밀도의 경우, machinefmt는 바이트 내 비트를 쓰는 순서를 지정하지만 바이트를 쓰는 순서는 시스템 바이트 순서에 따릅니다.
'n' 또는 'native'
'native'
시스템 바이트 순서(디폴트 값)
'b' 또는 'ieee-be'
빅 엔디안 순서
'l' 또는 'ieee-le'
'ieee-le'
리틀 엔디안 순서
's' 또는 'ieee-be.l64'
'ieee-be.l64'
빅 엔디안 순서, 64비트 long 데이터형
'a' 또는 'ieee-le.l64'
'ieee-le.l64'
리틀 엔디안 순서, 64비트 long 데이터형
기본적으로, 현재 지원되는 플랫폼은 모두 새 파일에 리틀 엔디안 순서를 사용합니다. 기존의 이진 파일은 빅 엔디안 또는 리틀 엔디안 순서를 사용할 수 있습니다.
모두 확장
사용법 관련 참고 및 제한 사항:
정밀도 인수는 상수여야 합니다.
정밀도 유형 'long', 'ulong', 'unsigned long', 'bitn', 'ubitn'을 지원하지 않습니다.
'unsigned long'
컴퓨터 형식(바이트를 쓰는 순서) 입력 인수를 지원하지 않습니다.
정밀도가 int 같은 C 유형인 경우 해당 유형의 대상 크기와 프로덕션 크기는 다음과 같아야 합니다.
int
일치해야 합니다.
MATLAB 정수형에 직접 매핑되어야 합니다.
char 유형을 부호 있는 8비트 정수로 처리해야 합니다. 0~127까지의 값만 사용하십시오.
파일을 추가하고 건너뛰기 인수를 사용하는 경우 C 런타임 fseek가 파일 끝을 지나서 탐색하고 쓰지 않은 바이트를 0으로 초기화할 수 있어야 합니다. 이 동작은 POSIX® 및 Windows®의 동작과 일치합니다.
fseek
backgroundPool
ThreadPool
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
이 함수는 스레드 기반 환경을 지원합니다.
fclose | ferror | fopen | fprintf | fread | fscanf | fseek | ftell
fclose
ferror
fprintf
fread
fscanf
ftell
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
유럽
아시아 태평양
지역별 지사에 문의