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

MATLAB - 데이터 가져오기

MATLAB에서 데이터 가져오기는 외부 파일에서 데이터를 로드하는 것을 의미합니다. 가져오기 데이터 기능을 사용하면 다양한 형식의 다양한 데이터 파일을 로드할 수 있습니다. 다음과 같은 5가지 형태가 있습니다 -

시니어 번호 기능 및 설명
1

A =데이터 가져오기(파일 이름)

filename으로 표시된 파일에서 배열 A로 데이터를 로드합니다. .

2

A =importdata('-pastespecial')

파일이 아닌 시스템 클립보드에서 데이터를 로드합니다.

3

A =importdata(___, delimiterIn)

delimiterIn 해석 ASCII 파일, 파일 이름 또는 클립보드 데이터의 열 구분 기호로 사용됩니다. delimiterIn을 사용할 수 있습니다. 위 구문의 입력 인수와 함께 사용합니다.

4

A =importdata(___, delimiterIn, headerlinesIn)

ASCII 파일, 파일 이름 또는 클립보드에서 데이터를 로드하고 headerlinesIn+1 줄에서 시작하는 숫자 데이터를 읽습니다. .

5

[A, delimiterOut, headerlinesOut] =importdata(___)

delimiterOut에서 입력 ASCII 파일에 대해 감지된 구분 문자를 반환합니다. headerlinesOut에서 감지된 헤더 행 수 , 이전 구문의 입력 인수를 사용합니다.

예시 1

이미지 파일을 로드하여 표시해 보겠습니다. 스크립트 파일을 만들고 그 안에 다음 코드를 입력하십시오 -

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

파일을 실행하면 MATLAB이 이미지 파일을 표시합니다. 그러나 현재 디렉토리에 저장해야 합니다.

예시 2

이 예에서는 텍스트 파일을 가져오고 구분 기호와 열 머리글을 지정합니다. weeklydata.txt라는 이름의 열 헤더가 있는 공백으로 구분된 ASCII 파일을 생성해 보겠습니다. .

우리의 텍스트 파일 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);

% View data
for k = [1:7]
   disp(A.colheaders{1, k})
   disp(A.data(:, k))
   disp(' ')
end

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

SunDay
   95.0100
   73.1100
   60.6800
   48.6000
   89.1300
 
MonDay
   76.2100
   45.6500
   41.8500
   82.1400
   44.4700
 
TuesDay
   61.5400
   79.1900
   92.1800
   73.8200
   57.6300

WednesDay
   40.5700
   93.5500
   91.6900
   41.0300
   89.3600
 
ThursDay
   55.7900
   75.2900
   81.3200
   0.9900
   13.8900
 
FriDay
   70.2800
   69.8700
   90.3800
   67.2200
   19.8800

SaturDay
   81.5300
   74.6800
   74.5100
   93.1800
   46.6000

예시 3

이 예에서는 클립보드에서 데이터를 가져오도록 하겠습니다.

다음 줄을 클립보드에 복사 -

수학은 간단합니다

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

A = importdata('-pastespecial')

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

A = 
   'Mathematics is simple'

저수준 파일 I/O

데이터 가져오기 함수는 상위 수준 함수입니다. MATLAB의 저수준 파일 I/O 함수를 사용하면 파일에 대한 데이터 읽기 또는 쓰기를 최대한 제어할 수 있습니다. 그러나 이러한 함수가 효율적으로 작동하려면 파일에 대한 보다 자세한 정보가 필요합니다.

MATLAB은 바이트 또는 문자 수준에서 읽기 및 쓰기 작업을 위해 다음과 같은 기능을 제공합니다. -

함수 설명
닫기 열린 파일 하나 또는 모두 닫기
feof 파일 끝 테스트
오류 파일 I/O 오류에 대한 정보
fgetl 파일에서 줄 읽기, 줄 바꿈 문자 제거
fgets 파일에서 줄 읽기, 줄 바꿈 문자 유지
열기 파일 열기 또는 열린 파일에 대한 정보 얻기
fprintf 텍스트 파일에 데이터 쓰기
후드 바이너리 파일에서 데이터 읽기
프리윈드 파일 위치 표시기를 열린 파일의 시작 부분으로 이동
fscanf 텍스트 파일에서 데이터 읽기
fseek 파일의 지정된 위치로 이동
ftell 열린 파일의 위치
쓰기 바이너리 파일에 데이터 쓰기

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

MATLAB은 텍스트 데이터 파일의 저수준 가져오기를 위해 다음과 같은 기능을 제공합니다. -

작업 디렉토리에 저장된 텍스트 데이터 파일 'myfile.txt'가 있습니다. 파일은 3개월 동안의 강우 데이터를 저장합니다. 2012년 6월, 7월, 8월.

myfile.txt의 데이터에는 다섯 곳에서 반복되는 시간, 월 및 강우 측정 세트가 포함되어 있습니다. 헤더 데이터는 개월 수를 저장합니다. M; 따라서 M 세트의 측정값이 있습니다.

파일은 다음과 같습니다 -

Rainfall Data
Months: June, July, August
 
M = 3
12:00:00
June-2012
17.21  28.52  39.78  16.55 23.67
19.15  0.35   17.57  NaN   12.01
17.92  28.49  17.40  17.06 11.09
9.59   9.33   NaN    0.31  0.23 
10.46  13.17  NaN    14.89 19.33
20.97  19.50  17.65  14.45 14.00
18.23  10.34  17.95  16.46 19.34
09:10:02
July-2012
12.76  16.94  14.38  11.86 16.89
20.46  23.17  NaN    24.89 19.33
30.97  49.50  47.65  24.45 34.00
18.23  30.34  27.95  16.46 19.34
30.46  33.17  NaN    34.89  29.33
30.97  49.50  47.65  24.45 34.00
28.67  30.34  27.95  36.46 29.34
15:03:40
August-2012
17.09  16.55  19.59  17.25 19.22
17.54  11.45  13.48  22.55 24.01
NaN    21.19  25.85  25.05 27.21
26.79  24.98  12.23  16.99 18.67
17.54  11.45  13.48  22.55 24.01
NaN    21.19  25.85  25.05 27.21
26.79  24.98  12.23  16.99 18.67

이 파일에서 데이터를 가져와 이 데이터를 표시합니다. 다음 단계를 따르십시오 -

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

filename = '/data/myfile.txt';
rows = 7;
cols = 5;
 
% open the file
fid = fopen(filename);
 
% read the file headers, find M (number of months)
M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n', 1);
 
% read each set of measurements
for n = 1:M
   mydata(n).time = fscanf(fid, '%s', 1);
   mydata(n).month = fscanf(fid, '%s', 1);
 
   % fscanf fills the array in column order,
   % so transpose the results
   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
 
% close the file
fclose(fid);

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

12:00:00
June-2012
   17.2100   17.5700   11.0900   13.1700   14.4500
   28.5200       NaN    9.5900       NaN   14.0000
   39.7800   12.0100    9.3300   14.8900   18.2300
   16.5500   17.9200       NaN   19.3300   10.3400
   23.6700   28.4900    0.3100   20.9700   17.9500
   19.1500   17.4000    0.2300   19.5000   16.4600
   0.3500   17.0600   10.4600   17.6500   19.3400

09:10:02
July-2012
   12.7600       NaN   34.0000   33.1700   24.4500
   16.9400   24.8900   18.2300       NaN   34.0000
   14.3800   19.3300   30.3400   34.8900   28.6700
   11.8600   30.9700   27.9500   29.3300   30.3400
   16.8900   49.5000   16.4600   30.9700   27.9500
   20.4600   47.6500   19.3400   49.5000   36.4600
   23.1700   24.4500   30.4600   47.6500   29.3400

15:03:40
August-2012
   17.0900   13.4800   27.2100   11.4500   25.0500
   16.5500   22.5500   26.7900   13.4800   27.2100
   19.5900   24.0100   24.9800   22.5500   26.7900
   17.2500       NaN   12.2300   24.0100   24.9800
   19.2200   21.1900   16.9900       NaN   12.2300
   17.5400   25.8500   18.6700   21.1900   16.9900
   11.4500   25.0500   17.5400   25.8500   18.6700

MATLAB

  1. Azure File Storage 초보자 가이드
  2. MATLAB - 개요
  3. MATLAB - 데이터 유형
  4. MATLAB - 연산자
  5. MATLAB - 행렬
  6. MATLAB - 배열
  7. MATLAB - 콜론 표기법
  8. MATLAB - 숫자
  9. MATLAB - 문자열
  10. MATLAB - 함수