이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

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({'street1.jpg','street2.jpg','peppers.png'}); 

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

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

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

imdsCombined = combine(imds1,imds2);

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

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

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

tile = imtile(dataOut);
imshow(tile)

입력 인수

모두 축소

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

  • MATLAB® 데이터저장소 — MATLAB datastore 함수를 사용하여 생성된 데이터저장소입니다. 예를 들어, ImageDatastore를 사용하여 이미지 모음을 위한 데이터저장소를 생성합니다. 데이터저장소의 전체 목록을 보려면 Select Datastore for File Format or Application 항목을 참조하십시오.

  • 결합되고 변환된 데이터저장소 — combine 함수와 transform 함수를 사용하여 생성된 데이터저장소입니다.

  • 사용자 지정 데이터저장소 — 사용자 지정 데이터저장소 프레임워크를 사용하여 생성된 데이터저장소입니다. Develop Custom Datastore 항목을 참조하십시오.

출력 인수

모두 축소

출력 데이터로, ds의 유형에 따라 테이블이나 배열로 반환됩니다.

데이터저장소 유형data의 데이터형설명
TabularTextDatastoreSpreadsheetDatastore테이블SelectedVariableNames 속성은 테이블 변수를 지정합니다.
ImageDatastore정수형 배열 정수형 배열의 차원은 다음과 같이 이미지 유형에 따라 달라집니다.
  • 회색조 이미지의 경우, data는 mxn입니다.

  • 트루컬러 이미지의 경우, data는 mxnx3입니다.

  • CMYK Tiff 이미지의 경우, data는 mxnx4입니다.

ReadSize 속성이 1보다 큰 경우 data는 각 이미지에 대응하는 이미지 데이터로 구성된 셀형 배열입니다. read 함수는 imread 함수에서 지원되는 모든 이미지 유형을 지원합니다. 지원되는 이미지 유형에 대한 자세한 내용은 imread를 참조하십시오.
KeyValueDatastore테이블테이블 변수 이름은 KeyValue입니다.
FileDatastore각각 다름출력값은 'ReadFcn' 값으로 지정되는 사용자 지정 읽기 함수에서 반환되는 출력값과 동일합니다.
TransformedDatastore각각 다름출력값은 TransformedDatastore를 만들 때 사용한 transform 메서드에 지정된 변환 함수 @fcn의 출력값과 동일합니다.
CombinedDatastore각각 다름

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

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

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

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

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

필드 이름데이터저장소 유형설명
Filename모든 버전Filename은 경로 문자열, 파일의 이름, 파일 확장자를 포함하는 완전히 확인된 경로입니다. 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에 개발됨