산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> MATLAB

MATLAB 데이터 가져오기: 외부 파일 효율적으로 로드하기

importdata 함수 개요

MATLAB에서 데이터 가져오기란 외부 파일에서 데이터를 로드하는 것입니다. importdata 함수는 다양한 형식의 파일을 불러올 수 있으며 5가지 구문을 제공합니다.

번호구문 및 설명
1A = importdata(filename) - 파일에서 배열 A로 데이터 로드
2A = importdata('-pastespecial') - 시스템 클립보드에서 데이터 로드
3A = importdata(___, delimiterIn) - ASCII 파일/클립보드에서 열 구분자 지정
4A = importdata(___, delimiterIn, headerlinesIn) - 헤더 줄 수 지정 후 숫자 데이터 로드
5[A, delimiterOut, headerlinesOut] = importdata(___) - 감지된 구분자와 헤더 줄 수 반환

예제 1: 이미지 파일 로드

filename = 'smile.jpg';
A = importdata(filename);
image(A);

현재 디렉토리에 파일이 있어야 합니다. 실행 시 이미지가 표시됩니다.

예제 2: 텍스트 파일 가져오기 (구분자, 헤더 지정)

weeklydata.txt (공백 구분, 첫 줄 헤더):

SunDay MonDay TuesDay WednesDay ThursDay FriDay SaturDay
95.01 76.21 61.54 40.57 55.79 70.28 81.53
73.11 45.65 79.19 93.55 75.29 69.87 74.68
60.68 41.85 92.18 91.69 81.32 90.38 74.51
48.60 82.14 73.82 41.03 0.99 67.22 93.18
89.13 44.47 57.63 89.36 13.89 19.88 46.60
filename = 'weeklydata.txt';
delimiterIn = ' ';
headerlinesIn = 1;
A = importdata(filename, delimiterIn, headerlinesIn);
for k = 1:7
    disp(A.colheaders{1, k})
    disp(A.data(:, k))
    disp(' ')
end

실행 결과: 각 요일 헤더와 해당 열 데이터가 출력됩니다.

예제 3: 클립보드에서 가져오기

클립보드에 "Mathematics is simple" 복사 후:

A = importdata('-pastespecial')

결과: A = 'Mathematics is simple'

저수준 파일 I/O (Low-Level File I/O)

importdata는 고수준 함수입니다. 저수준 I/O 함수는 바이트/문자 단위 읽기/쓰기를 세밀하게 제어하지만 파일 형식에 대한 자세한 정보가 필요합니다.

주요 저수준 I/O 함수

함수설명
fclose열린 파일 닫기
feof파일 끝 여부 확인
ferror파일 I/O 오류 정보
fgetl한 줄 읽기(개행 문자 제거)
fgets한 줄 읽기(개행 문자 유지)
fopen파일 열기/정보 얻기
fprintf텍스트 파일에 데이터 쓰기
fread바이너리 파일에서 데이터 읽기
frewind파일 위치 지시자를 처음으로
fscanf텍스트 파일에서 포맷된 데이터 읽기
fseek파일 내 지정 위치로 이동
ftell파일 내 현재 위치
fwrite바이너리 파일에 데이터 쓰기

저수준 I/O로 텍스트 데이터 가져오기

주요 함수: fscanf(포맷 읽기), fgetl/fgets(한 줄 읽기), fread(바이트/비트 스트림 읽기).

실전 예제: 강우량 데이터 파일 파싱

myfile.txt 구조: 헤더에 월 수 M, 이후 M개 측정 세트(각 7행 5열).

filename = '/data/myfile.txt';
rows = 7; cols = 5;
fid = fopen(filename);
M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n', 1);  % 헤더 파싱, M 추출

for n = 1:M
    mydata(n).time = fscanf(fid, '%s', 1);
    mydata(n).month = fscanf(fid, '%s', 1);
    mydata(n).raindata = fscanf(fid, '%f', [rows, cols]);  % 열 우선 저장됨 → 전치 필요
end

for n = 1:M
    disp(mydata(n).time), disp(mydata(n).month)
    disp(mydata(n).raindata)
end
fclose(fid);

실행 결과: 각 측정 세트의 시간, 월, 강우량 행렬이 구조체 배열 mydata에 저장되어 출력됩니다.

MATLAB

  1. Azure File Storage 입문: 안전하고 확장 가능한 클라우드 스토리지 초보자 가이드
  2. MATLAB: 선도적인 수치 연산 환경 종합 개요
  3. MATLAB 데이터 타입 완벽 가이드: 종류, 변환, 확인 방법
  4. MATLAB 연산자 마스터: 산술, 논리, 비트 연산 완벽 가이드
  5. MATLAB 행렬 기초 마스터: 생성, 참조, 데이터 조작
  6. MATLAB: 다차원 배열과 특수 배열 마스터하기
  7. MATLAB 콜론 연산자 마스터하기: 벡터 생성과 효율적 반복
  8. MATLAB 숫자 유형: 정수, 부동소수점, 변환과 범위 총정리
  9. MATLAB 문자열 완벽 가이드: 생성, 결합, 셀 배열 변환, 주요 함수
  10. MATLAB 함수 완전 정복: 정의, 워크스페이스, 입출력, 익명/중첩/비공개 함수