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에서 감지된 헤더 행 수 , 이전 구문의 입력 인수를 사용합니다. |
이미지 파일을 로드하여 표시해 보겠습니다. 스크립트 파일을 만들고 그 안에 다음 코드를 입력하십시오 -
filename = 'smile.jpg'; A = importdata(filename); image(A);
파일을 실행하면 MATLAB이 이미지 파일을 표시합니다. 그러나 현재 디렉토리에 저장해야 합니다.
이 예에서는 텍스트 파일을 가져오고 구분 기호와 열 머리글을 지정합니다. 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
이 예에서는 클립보드에서 데이터를 가져오도록 하겠습니다.
다음 줄을 클립보드에 복사 -
수학은 간단합니다
스크립트 파일을 만들고 다음 코드를 입력하십시오 -
A = importdata('-pastespecial')
파일을 실행하면 다음과 같은 결과가 표시됩니다. -
A = 'Mathematics is simple'
데이터 가져오기 함수는 상위 수준 함수입니다. MATLAB의 저수준 파일 I/O 함수를 사용하면 파일에 대한 데이터 읽기 또는 쓰기를 최대한 제어할 수 있습니다. 그러나 이러한 함수가 효율적으로 작동하려면 파일에 대한 보다 자세한 정보가 필요합니다.
MATLAB은 바이트 또는 문자 수준에서 읽기 및 쓰기 작업을 위해 다음과 같은 기능을 제공합니다. -
함수 | 설명 |
---|---|
닫기 | 열린 파일 하나 또는 모두 닫기 |
feof | 파일 끝 테스트 |
오류 | 파일 I/O 오류에 대한 정보 |
fgetl | 파일에서 줄 읽기, 줄 바꿈 문자 제거 |
fgets | 파일에서 줄 읽기, 줄 바꿈 문자 유지 |
열기 | 파일 열기 또는 열린 파일에 대한 정보 얻기 |
fprintf | 텍스트 파일에 데이터 쓰기 |
후드 | 바이너리 파일에서 데이터 읽기 |
프리윈드 | 파일 위치 표시기를 열린 파일의 시작 부분으로 이동 |
fscanf | 텍스트 파일에서 데이터 읽기 |
fseek | 파일의 지정된 위치로 이동 |
ftell | 열린 파일의 위치 |
쓰기 | 바이너리 파일에 데이터 쓰기 |
MATLAB은 텍스트 데이터 파일의 저수준 가져오기를 위해 다음과 같은 기능을 제공합니다. -
fscanf 함수는 형식이 지정된 데이터를 텍스트 또는 ASCII 파일로 읽습니다.
fgetl 및 fget 함수는 한 번에 파일의 한 줄을 읽습니다. 여기서 줄 바꿈 문자는 각 줄을 구분합니다.
후드 함수는 바이트 또는 비트 수준에서 데이터 스트림을 읽습니다.
작업 디렉토리에 저장된 텍스트 데이터 파일 '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
이 파일에서 데이터를 가져와 이 데이터를 표시합니다. 다음 단계를 따르십시오 -
fopen으로 파일 열기 함수를 만들고 파일 식별자를 가져옵니다.
형식 지정자를 사용하여 파일의 데이터를 설명합니다. , 예:'%s ' 문자열의 경우 '%d ' 정수 또는 '%f ' 부동 소수점 숫자의 경우.
파일에서 리터럴 문자를 건너뛰려면 형식 설명에 포함합니다. 데이터 필드를 건너뛰려면 지정자에 별표('*')를 사용하세요.
예를 들어 헤더를 읽고 M에 대한 단일 값을 반환하려면 −
를 작성합니다.M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n', 1);
기본적으로 fscanf 데이터와 일치하는 항목을 찾지 못하거나 파일 끝에 도달할 때까지 형식 설명에 따라 데이터를 읽습니다. 여기서 우리는 3세트의 데이터를 읽기 위해 for 루프를 사용할 것이며 매번 7행 5열을 읽습니다.
mydata라는 구조를 생성합니다. 작업 공간에서 파일에서 읽은 데이터를 저장합니다. 이 구조에는 time의 세 가지 필드가 있습니다. , 월 , 및 비 데이터 배열.
스크립트 파일을 만들고 그 안에 다음 코드를 입력하십시오 -
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
Simulink는 MATLAB과 통합된 동적 및 임베디드 시스템을 위한 시뮬레이션 및 모델 기반 설계 환경입니다. MathWorks에서 개발한 Simulink는 다중 도메인 동적 시스템을 모델링, 시뮬레이션 및 분석하기 위한 데이터 흐름 그래픽 프로그래밍 언어 도구입니다. 기본적으로 사용자 정의 가능한 블록 라이브러리 세트가 있는 그래픽 블록 다이어그램 도구입니다. 이를 통해 MATLAB 알고리즘을 모델에 통합하고 추가 분석을 위해 시뮬레이션 결과를 MATLAB으로 내보낼 수 있습니다. Simulink는 −를 지원합니다. 시스
클라우드 데이터 레이크 전략은 클라우드로 이동하는 데이터 집약적인 엔터프라이즈 IT 조직을 위한 자연스러운 진화입니다. 클라우드를 저렴한 데이터 스토리지에서 새로운 가치를 위해 데이터를 활용하고 수익을 창출할 수 있는 곳으로 끌어올리기 때문입니다. 2020년과 2021년이 클라우드가 급속하게 가속화된 해였다면 2022년은 기업이 비정형 파일 데이터를 클라우드 데이터 레이크로 가져오는 것에 대해 진지하게 생각하기 시작하는 해가 될 것입니다. 이러한 경향 뒤에는 몇 가지 이유가 있습니다. 첫째, 조직은 오늘날 전 세계 스토리지에 있