read
데이터저장소의 데이터 읽어 들이기
설명
예제
TabularTextDatastore의 데이터 읽어 들이기
테이블 형식 데이터가 포함된 샘플 파일 airlinesmall.csv
에서 데이터저장소를 만듭니다.
ds = tabularTextDatastore('airlinesmall.csv','TreatAsMissing','NA','MissingValue',0);
SelectedVariableNames
속성을 수정하여 필요한 변수를 지정합니다.
ds.SelectedVariableNames = {'DepTime','ArrTime','ActualElapsedTime'};
데이터저장소에서 읽을 수 있는 데이터가 있는 동안 한 번에 하나의 데이터 블록을 읽고 데이터를 분석합니다. 이 예제에서는 실제 경과 시간의 합을 구합니다.
sumElapsedTime = 0; while hasdata(ds) T = read(ds); sumElapsedTime = sumElapsedTime + sum(T.ActualElapsedTime); end
실제 경과 시간의 합을 확인합니다.
sumElapsedTime
sumElapsedTime = 14531797
KeyValueDatastore의 데이터 읽어 들이기
샘플 파일 mapredout.mat
에서 데이터저장소를 만듭니다. 이 파일은 mapreduce
함수의 출력 파일입니다.
ds = datastore('mapredout.mat');
데이터저장소에 있는 데이터의 서브셋을 읽습니다.
T = read(ds)
T=1×2 table
Key Value
______ _________
{'AA'} {[14930]}
데이터저장소의 ReadSize
속성을 변경하여 한 번에 읽을 키-값 쌍의 개수를 변경합니다.
ds.ReadSize = 5;
데이터저장소에서 다음 5개의 키-값 쌍을 읽습니다.
T = read(ds)
T=5×2 table
Key Value
______ _________
{'AS'} {[ 2910]}
{'CO'} {[ 8138]}
{'DL'} {[16578]}
{'EA'} {[ 920]}
{'HP'} {[ 3660]}
CombinedDatastore의 데이터 읽어 들이기
기본 데이터저장소의 이미지 쌍 사이에 패리티를 유지하는 데이터저장소를 만듭니다. 예를 들어, 두 개의 개별 이미지 데이터저장소를 만든 다음 이 두 개의 이미지 데이터저장소에서 대응되는 이미지를 읽어 들이는 결합된 데이터저장소를 만듭니다.
3개의 이미지 모음을 나타내는 이미지 데이터저장소 imds1
을 만듭니다.
imds1 = imageDatastore({'peppers.png','street1.jpg','street2.jpg'});
3개 이미지의 밝은 영역에 대한 마스크를 포함하는 두 번째 데이터저장소 imds2
를 만듭니다. 이 데이터저장소를 만들려면 먼저 imds1
의 이미지를 회색조로 변환합니다. 그런 다음 이진화를 수행하여 각 이미지를 이진 마스크로 변환합니다. 이 예제에서는 이진화 연산이 임계값(250
)보다 큰 값을 갖는 픽셀을 흰색으로 매핑하고 다른 모든 픽셀을 검은색으로 매핑합니다.
imds2 = transform(imds1,@(x) im2gray(x)>250);
imds1
과 imds2
에서 결합된 데이터저장소를 만듭니다.
imdsCombined = combine(imds1,imds2);
결합된 데이터저장소에서 첫 번째 데이터 서브셋을 읽어 들입니다. 출력값은 1×2 셀형 배열입니다. 두 개의 열은 두 개의 기본 데이터저장소 imds1
과 imds2
에서 읽어 들인 데이터의 첫 번째 서브셋을 각각 나타냅니다.
dataOut = read(imdsCombined)
dataOut=1×2 cell array
{384x512x3 uint8} {384x512 logical}
결합된 데이터저장소에서 읽어 들인 데이터를 타일 형식 이미지 쌍으로 표시합니다.
tile = imtile(dataOut); imshow(tile)
결합된 데이터저장소에서 다시 읽어 들입니다. 이때 read
함수를 호출하면 이전 호출의 끝점에서부터 계속해서 데이터를 읽습니다.
dataOut = read(imdsCombined)
dataOut=1×2 cell array
{480x640x3 uint8} {480x640 logical}
읽어 들인 데이터를 표시합니다.
tile = imtile(dataOut); imshow(tile)
입력 인수
ds
— 입력 데이터저장소
데이터저장소
입력 데이터저장소입니다. read
메서드에는 다음과 같은 데이터저장소를 입력값으로 사용할 수 있습니다.
MATLAB® 데이터저장소 — MATLAB
datastore
함수를 사용하여 생성된 데이터저장소입니다. 예를 들어,ImageDatastore
를 사용하여 이미지 모음을 위한 데이터저장소를 생성합니다. 데이터저장소의 전체 목록을 보려면 파일 형식 또는 응용 프로그램에 맞는 데이터저장소 선택하기 항목을 참조하십시오.결합되고 변환된 데이터저장소 —
combine
함수와transform
함수를 사용하여 생성된 데이터저장소입니다.사용자 지정 데이터저장소 — 사용자 지정 데이터저장소 프레임워크를 사용하여 생성된 데이터저장소입니다. Develop Custom Datastore 항목을 참조하십시오.
출력 인수
data
— 출력 데이터
테이블 | 타임테이블 | 배열
출력 데이터로, 입력 ds
의 유형에 따라 테이블, 타임테이블 또는 배열로 반환됩니다. read
함수를 가져오기 옵션과 함께 호출해서 읽어 들인 데이터의 양이 아무런 값을 반환하지 않으면 data
출력값은 비어 있을 수 있습니다.
데이터저장소 유형 | data 의 데이터형 | 설명 |
---|---|---|
TabularTextDatastore , SpreadsheetDatastore , ParquetDatastore | 테이블 또는 타임테이블 | SelectedVariableNames 속성은 테이블 변수를 지정합니다. OutputType 속성은 출력값이 테이블인지 아니면 타임테이블인지 여부를 결정합니다. |
ImageDatastore | 정수형 배열 | 정수형 배열의 차원은 다음과 같이 이미지 유형에 따라 달라집니다.
|
KeyValueDatastore | 테이블 | 테이블 변수 이름은 Key 와 Value 입니다. |
FileDatastore | 각각 다름 | 출력값은 'ReadFcn' 값으로 지정되는 사용자 지정 읽기 함수에서 반환되는 출력값과 동일합니다. |
TransformedDatastore | 각각 다름 | 출력값은 TransformedDatastore 를 만들 때 사용한 transform 메서드에 지정된 변환 함수 @fcn 의 출력값과 동일합니다. |
CombinedDatastore | 각각 다름 | 대응하는 기본 데이터저장소에서 읽어 들인 출력값의 가로 결합을 포함합니다. |
SequentialDatastore | 각각 다름 | 현재 기본 데이터저장소에서 순차적으로 읽어 들인 출력값을 포함합니다. |
info
— 읽기 데이터에 관한 정보
구조체형 배열 | 셀형 배열
읽기 데이터에 관한 정보로, 구조체형 배열 또는 구조체형 배열로 구성된 셀형 배열로 반환됩니다.
MATLAB 데이터저장소와
TransformedDatastore
에서info
는 데이터저장소에 대한 정보가 담긴 필드를 포함하는 구조체형 배열입니다.CombinedDatastore
에서info
는 구조체형 배열로 구성된 셀형 배열입니다. 셀형 배열의 각 요소는 대응하는 기본 데이터저장소의 관련 필드를 갖는 구조체를 포함합니다.SequentialDatastore
에서info
의 형식과 데이터형은 현재 기본 데이터저장소와 동일합니다.
구조체형 배열에 포함되는 정보는 입력 데이터저장소의 유형에 따라 달라집니다. 구조체형 배열은 다음 필드를 포함할 수 있습니다.
필드 이름 | 데이터저장소 유형 | 설명 |
---|---|---|
Filename | ImageDatastore ,SpreadsheetDatastore , TabularTextDatastore , FileDatastore , KeyValueDatastore 및 TallDatastore | Filename 은 경로 문자열, 파일의 이름, 파일 확장자를 포함하는 완전히 확인된 경로입니다. ReadSize 속성이 1보다 큰 ImageDatastore 객체의 경우 Filename 은 각 이미지에 대응하는 파일 이름으로 구성된 셀형 배열입니다. |
FileSize | 총 파일 크기입니다(단위: 바이트).
MAT 파일의 경우,
| |
FileType | KeyValueDatastore 에만 해당 | 데이터를 읽어 들이는 파일의 형식으로, MAT 파일의 경우 |
Label | ImageDatastore 에만 해당 | 이미지 레이블 이름입니다. |
NumCharactersRead | TabularTextDatastore 에만 해당 | 읽은 문자의 개수입니다. |
NumDataRows | SpreadsheetDatastore 에만 해당 | 각 시트에서 읽어 들인 행의 개수를 포함하는 벡터입니다. |
Offset | KeyValueDatastore 와 TabularTextDatastore 에만 해당 | 읽기 작업의 시작 위치입니다(단위: 바이트). MAT 파일의 경우 |
SheetNames | SpreadsheetDatastore 에만 해당 | 읽어 들인 시트의 이름입니다. |
SheetNumbers | SpreadsheetDatastore 에만 해당 | 읽어 들인 시트와 연결된 번호입니다. |
확장 기능
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
사용법 관련 참고 및 제한 사항:
스레드 기반 환경에서는 다음과 같은 데이터저장소에만
read
함수를 사용할 수 있습니다.ImageDatastore
객체ImageDatastore
객체로부터combine
또는transform
을 사용하여 생성한CombinedDatastore
,SequentialDatastore
또는TransformedDatastore
객체
Parallel Computing Toolbox™가 있는 경우
read
함수를 다른 데이터저장소에도 사용할 수 있습니다. 이렇게 하려면backgroundPool
또는ThreadPool
을 사용하는 대신 프로세스를 지원하는 병렬 풀을 사용하는 함수를 실행하십시오(ProcessPool
또는ClusterPool
사용).read
함수는 스레드 기반 환경에서 다음과 같은 이미지 형식을 지원하지 않습니다.HDF(Hierarchical Data Format)
SVS
TIFF
자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
버전 내역
R2014b에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)