Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

read

데이터저장소의 데이터 읽어 들이기

설명

예제

data = read(ds)는 데이터저장소에서 데이터를 반환합니다. 이후에 read 함수를 호출하면 이전 호출의 끝점에서부터 계속해서 데이터를 읽습니다.

[data,info] = read(ds)는 메타데이터를 포함하여 info의 추출된 데이터에 대한 정보도 반환합니다.

예제

모두 축소

테이블 형식 데이터가 포함된 샘플 파일 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

샘플 파일 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]}

기본 데이터저장소의 이미지 쌍 사이에 패리티를 유지하는 데이터저장소를 만듭니다. 예를 들어, 두 개의 개별 이미지 데이터저장소를 만든 다음 이 두 개의 이미지 데이터저장소에서 대응되는 이미지를 읽어 들이는 결합된 데이터저장소를 만듭니다.

3개의 이미지 모음을 나타내는 이미지 데이터저장소 imds1을 만듭니다.

imds1 = imageDatastore({'peppers.png','street1.jpg','street2.jpg'}); 

3개 이미지의 밝은 영역에 대한 마스크를 포함하는 두 번째 데이터저장소 imds2를 만듭니다. 이 데이터저장소를 만들려면 먼저 imds1의 이미지를 회색조로 변환합니다. 그런 다음 이진화를 수행하여 각 이미지를 이진 마스크로 변환합니다. 이 예제에서는 이진화 연산이 임계값(250)보다 큰 값을 갖는 픽셀을 흰색으로 매핑하고 다른 모든 픽셀을 검은색으로 매핑합니다.

imds2 = transform(imds1,@(x) im2gray(x)>250);

imds1imds2에서 결합된 데이터저장소를 만듭니다.

imdsCombined = combine(imds1,imds2);

결합된 데이터저장소에서 첫 번째 데이터 서브셋을 읽어 들입니다. 출력값은 1×2 셀형 배열입니다. 두 개의 열은 두 개의 기본 데이터저장소 imds1imds2에서 읽어 들인 데이터의 첫 번째 서브셋을 각각 나타냅니다.

dataOut = read(imdsCombined)
dataOut=1×2 cell array
    {384x512x3 uint8}    {384x512 logical}

결합된 데이터저장소에서 읽어 들인 데이터를 타일 형식 이미지 쌍으로 표시합니다.

tile = imtile(dataOut);
imshow(tile)

Figure contains an axes object. The axes object contains an object of type image.

결합된 데이터저장소에서 다시 읽어 들입니다. 이때 read 함수를 호출하면 이전 호출의 끝점에서부터 계속해서 데이터를 읽습니다.

dataOut = read(imdsCombined)
dataOut=1×2 cell array
    {480x640x3 uint8}    {480x640 logical}

읽어 들인 데이터를 표시합니다.

tile = imtile(dataOut);
imshow(tile)

Figure contains an axes object. The axes object contains an object of type image.

입력 인수

모두 축소

입력 데이터저장소입니다. read 메서드에는 다음과 같은 데이터저장소를 입력값으로 사용할 수 있습니다.

출력 인수

모두 축소

출력 데이터로, 입력 ds의 유형에 따라 테이블, 타임테이블 또는 배열로 반환됩니다. read 함수를 가져오기 옵션과 함께 호출해서 읽어 들인 데이터의 양이 아무런 값을 반환하지 않으면 data 출력값은 비어 있을 수 있습니다.

데이터저장소 유형data의 데이터형설명
TabularTextDatastore, SpreadsheetDatastore, ParquetDatastore테이블 또는 타임테이블SelectedVariableNames 속성은 테이블 변수를 지정합니다. OutputType 속성은 출력값이 테이블인지 아니면 타임테이블인지 여부를 결정합니다.
ImageDatastore정수형 배열

정수형 배열의 차원은 다음과 같이 이미지 유형에 따라 달라집니다.

  • 회색조 이미지의 경우, data는 m×n입니다.

  • 트루컬러 이미지의 경우, data는 m×n×3입니다.

  • CMYK Tiff 이미지의 경우, data는 m×n×4입니다.

ReadSize 속성이 1보다 큰 경우 data는 각 이미지에 대응하는 이미지 데이터로 구성된 셀형 배열입니다. read 함수는 imread 함수에서 지원되는 모든 이미지 유형을 지원합니다. 지원되는 이미지 유형에 대한 자세한 내용은 imread를 참조하십시오.

KeyValueDatastore테이블테이블 변수 이름은 KeyValue입니다.
FileDatastore각각 다름출력값은 'ReadFcn' 값으로 지정되는 사용자 지정 읽기 함수에서 반환되는 출력값과 동일합니다.
TransformedDatastore각각 다름출력값은 TransformedDatastore를 만들 때 사용한 transform 메서드에 지정된 변환 함수 @fcn의 출력값과 동일합니다.
CombinedDatastore각각 다름

대응하는 기본 데이터저장소에서 읽어 들인 출력값의 가로 결합을 포함합니다.

SequentialDatastore각각 다름현재 기본 데이터저장소에서 순차적으로 읽어 들인 출력값을 포함합니다.

읽기 데이터에 관한 정보로, 구조체형 배열 또는 구조체형 배열로 구성된 셀형 배열로 반환됩니다.

  • MATLAB 데이터저장소와 TransformedDatastore에서 info는 데이터저장소에 대한 정보가 담긴 필드를 포함하는 구조체형 배열입니다.

  • CombinedDatastore에서 info는 구조체형 배열로 구성된 셀형 배열입니다. 셀형 배열의 각 요소는 대응하는 기본 데이터저장소의 관련 필드를 갖는 구조체를 포함합니다.

  • SequentialDatastore에서 info의 형식과 데이터형은 현재 기본 데이터저장소와 동일합니다.

구조체형 배열에 포함되는 정보는 입력 데이터저장소의 유형에 따라 달라집니다. 구조체형 배열은 다음 필드를 포함할 수 있습니다.

필드 이름데이터저장소 유형설명
FilenameImageDatastore,SpreadsheetDatastore, TabularTextDatastore, FileDatastore, KeyValueDatastoreTallDatastoreFilename은 경로 문자열, 파일의 이름, 파일 확장자를 포함하는 완전히 확인된 경로입니다. ReadSize 속성이 1보다 큰 ImageDatastore 객체의 경우 Filename은 각 이미지에 대응하는 파일 이름으로 구성된 셀형 배열입니다.
FileSize

총 파일 크기입니다(단위: 바이트).

ReadSize 속성이 1보다 큰 ImageDatastore 객체의 경우 FileSize는 각 이미지에 대응하는 파일 크기로 구성된 벡터입니다.

MAT 파일의 경우, FileSize의 값은 데이터저장소의 유형에 따라 달라집니다.

  • KeyValueDatastoreTallDatastoreFileSize 필드는 파일에 있는 키-값 쌍의 총 개수를 포함합니다.

  • FileDatastoreFileSize 필드는 총 파일 크기(단위: 바이트)를 포함합니다.

FileTypeKeyValueDatastore에만 해당

데이터를 읽어 들이는 파일의 형식으로, MAT 파일의 경우 'mat'이고 시퀀스 파일의 경우 'seq'입니다.

LabelImageDatastore에만 해당

이미지 레이블 이름입니다. ReadSize 속성이 1보다 큰 경우 Label은 각 이미지에 대응하는 레이블 이름으로 구성된 벡터입니다. Labels 속성이 비어 있는 경우 Label은 빈 셀형 배열입니다.

NumCharactersReadTabularTextDatastore에만 해당

읽은 문자의 개수입니다.

NumDataRowsSpreadsheetDatastore에만 해당

각 시트에서 읽어 들인 행의 개수를 포함하는 벡터입니다.

OffsetKeyValueDatastoreTabularTextDatastore에만 해당

읽기 작업의 시작 위치입니다(단위: 바이트). MAT 파일의 경우 Offset은 첫 번째로 읽은 키와 값의 인덱스입니다.

SheetNamesSpreadsheetDatastore에만 해당

읽어 들인 시트의 이름입니다.

SheetNumbersSpreadsheetDatastore에만 해당

읽어 들인 시트와 연결된 번호입니다.

확장 기능

버전 내역

R2014b에 개발됨

참고 항목

| | |