주요 콘텐츠

h5create

HDF5 데이터셋 생성

설명

h5create(filename,ds,sz)는 이름이 HDF5 파일 filename에서의 전체 위치를 포함하고 sz로 지정된 크기를 갖는 데이터셋 ds를 만듭니다.

예제

h5create(filename,ds,sz,Name=Value)는 하나 이상의 이름-값 인수를 사용하여 옵션을 지정합니다. 예를 들어, ChunkSize=[5 5]는 HDF5 파일에 개별적으로 저장이 가능한, 데이터셋의 5×5 청크를 지정합니다.

예제

예제

모두 축소

전체 경로 /g1/g2/myDataset을 사용하여 고정된 크기 100×200×300의 데이터셋 myDataset을 만듭니다.

h5create("myFile.h5","/g1/g2/myDataset",[100 200 300])

myDataset에 데이터를 씁니다. myDataset 차원이 고정되어 있으므로 쓸 데이터의 양은 데이터셋의 크기와 일치해야 합니다.

myData = ones(100,200,300);
h5write("myFile.h5","/g1/g2/myDataset",myData)
h5disp("myFile.h5")
HDF5 myFile.h5 
Group '/' 
    Group '/g1' 
        Group '/g1/g2' 
            Dataset 'myDataset' 
                Size:  100x200x300
                MaxSize:  100x200x300
                Datatype:   H5T_IEEE_F64LE (double)
                ChunkSize:  []
                Filters:  none
                FillValue:  0.000000

각각 1000×2000 데이터셋을 포함하는 두 개의 HDF5 파일을 만듭니다. 첫 번째 데이터셋에는 최대 압축과 함께 deflate 필터를 사용하고 두 번째 데이터셋에는 엔트로피 인코딩과 함께 SZIP 필터를 사용합니다. 압축 필터를 적용할 때 청크 크기를 지정해야 합니다.

h5create("myFileDeflate.h5","/myDatasetDeflate",[1000 2000], ...
         ChunkSize=[50 80],Deflate=9)
h5create("myFileSZIP.h5","/myDatasetSZIP",[1000 2000], ...
         ChunkSize=[50 80],SZIPEncodingMethod="entropy")

두 파일의 내용을 표시하고 서로 다른 필터를 관찰합니다.

h5disp("myFileDeflate.h5")
HDF5 myFileDeflate.h5 
Group '/' 
    Dataset 'myDatasetDeflate' 
        Size:  1000x2000
        MaxSize:  1000x2000
        Datatype:   H5T_IEEE_F64LE (double)
        ChunkSize:  50x80
        Filters:  deflate(9)
        FillValue:  0.000000
h5disp("myFileSZIP.h5")
HDF5 myFileSZIP.h5 
Group '/' 
    Dataset 'myDatasetSZIP' 
        Size:  1000x2000
        MaxSize:  1000x2000
        Datatype:   H5T_IEEE_F64LE (double)
        ChunkSize:  50x80
        Filters:  szip
        FillValue:  0.000000

각 데이터셋에 무작위 데이터를 씁니다.

myData = rand([1000 2000]);
h5write("myFileDeflate.h5","/myDatasetDeflate",myData)
h5write("myFileSZIP.h5","/myDatasetSZIP",myData)

결과 파일의 크기를 검토하여 압축 필터를 비교합니다. 이 데이터의 경우 deflate 필터를 사용할 때 압축률이 더 뛰어납니다.

deflateListing = dir("myFileDeflate.h5");
SZIPListing = dir("myFileSZIP.h5");
deflateFileSize = deflateListing.bytes
deflateFileSize = 
15117631
SZIPFileSize = SZIPListing.bytes
SZIPFileSize = 
16027320
sizeRatio = deflateFileSize/SZIPFileSize
sizeRatio = 
0.9432

두 번째 차원이 무제한인 2차원 데이터셋 myDataset3을 만듭니다. 데이터셋의 차원을 Inf으로 설정할 경우 ChunkSize 이름-값 인수를 지정해야 합니다.

h5create("myFile.h5","/myDataset3",[200 Inf],ChunkSize=[20 20])

myDataset3에 데이터를 씁니다. 이 차원이 무제한이므로 두 번째 차원을 따라 임의 크기의 데이터를 쓸 수 있습니다. 또한 데이터셋의 한 차원이 무제한이므로 데이터셋에 데이터를 쓸 경우 startcount 인수를 지정해야 합니다.

myData = rand(200,500);
h5write("myFile.h5","/myDataset3",myData,[1 1],[200 500])

HDF5 파일의 전체 내용을 표시합니다.

h5disp("myFile.h5")
HDF5 myFile.h5 
Group '/' 
    Dataset 'myDataset3' 
        Size:  200x500
        MaxSize:  200xInf
        Datatype:   H5T_IEEE_F64LE (double)
        ChunkSize:  20x20
        Filters:  none
        FillValue:  0.000000

입력 인수

모두 축소

HDF5 파일의 이름으로, string형 스칼라 또는 문자형 벡터로 지정됩니다. filename이 존재하지 않으면 h5create 함수가 파일을 생성합니다.

쓰려는 위치에 따라 filename은 다음 형식 중 하나가 될 수 있습니다.

위치

형식

현재 폴더

현재 폴더에 쓰려면 filename에 파일의 이름을 지정하십시오.

예: "myFile.h5"

다른 폴더

현재 폴더가 아닌 다른 폴더에 쓰려면 filename에 전체 경로 또는 상대 경로 이름을 지정하십시오.

예: "C:\myFolder\myFile.h5"

예: "/myFolder/myFile.h5"

원격 위치

원격 위치에 쓰려면 filename을 다음 형식과 같이 URL(Uniform Resource Locator)로 지정하십시오.

scheme_name://path_to_file/my_file.h5

원격 위치에 따라 scheme_name은 다음 표에 있는 값 중 하나가 될 수 있습니다.

원격 위치scheme_name
Amazon S3™s3
Windows Azure® Blob Storagewasb, wasbs

자세한 내용은 원격 데이터로 작업하기 항목을 참조하십시오.

예: "s3://my_bucket/my_path/my_file.h5"

데이터셋 이름으로, 생성할 데이터셋의 전체 경로 이름을 포함하는 string형 스칼라 또는 문자형 벡터로 지정됩니다. 현재 존재하지 않는 데이터셋을 지정하면 h5create 함수가 데이터셋을 생성합니다. 또한, 현재 존재하지 않는 중간 그룹을 지정하면 h5create 함수가 해당 그룹을 만듭니다.

예: "/myDataset"

예: "/g1/g2/myNestedDataset"

데이터셋 크기로, 스칼라 또는 행 벡터로 지정됩니다. 무제한 차원을 지정하려면 sz의 대응하는 요소를 Inf로 지정하십시오. 이 경우 ChunkSize도 지정해야 합니다.

예: 50

예: [2000 1000]

예: [100 200 Inf]

데이터형: double

이름-값 인수

모두 축소

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

예: h5create("myFile.h5","/dataset1",[1000 2000],ChunkSize=[50 80],CustomFilterID=307,CustomFilterParameters=6)은 50×80 청크, 등록된 bzip2 필터(식별자 307), 압축 블록 크기 6을 사용하여 HDF5 파일 myFile.h5에서 1000×2000 데이터셋 dataset1을 만듭니다.

데이터셋의 데이터형으로, 다음 값 중 하나로 지정되어 MATLAB® 데이터형을 나타냅니다.

  • "double"

  • "single"

  • "uint64"

  • "int64"

  • "uint32"

  • "int32"

  • "uint16"

  • "int16"

  • "uint8"

  • "int8"

  • "string"

데이터형: string | char

청크 크기로, 청크의 차원을 포함하는 스칼라 또는 행 벡터로 지정됩니다. sz의 요소 중 하나라도 Inf이면 ChunkSize를 지정해야 합니다. ChunkSize의 길이는 sz의 길이와 같아야 하고, ChunkSize의 각 요소는 sz의 대응하는 요소보다 작거나 같아야 합니다.

예: 10

예: [20 10 100]

데이터형: double

Deflate 압축 수준으로, 0과 9사이의 정수 스칼라 값으로 지정됩니다. 디폴트 값 0은 압축하지 않는 것을 나타냅니다. 값 1은 최소한으로 압축하는 것을 나타내고 값 9는 최대한으로 압축하는 것을 나타냅니다. Deflate를 지정하는 경우 ChunkSize도 지정해야 합니다.

동일한 함수 호출에 DeflateSZIPEncodingMethod를 동시에 지정할 수는 없습니다.

데이터형: double

숫자형 데이터셋의 누락된 데이터에 대한 채우기 값으로, 숫자형 값으로 지정됩니다.

데이터형: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64

32비트 Fletcher 체크섬 필터로, 숫자형 또는 논리값 1(true) 또는 0(false)으로 지정됩니다. Fletcher 체크섬 필터는 파일의 전송된 데이터에 오류가 없는지 확인합니다. Fletcher32를 지정하는 경우 ChunkSize도 지정해야 합니다.

데이터형: logical | double

Shuffle 필터로, 숫자형 또는 논리값 1(true) 또는 0(false)으로 지정됩니다. Shuffle 필터는 메모리에 저장된 데이터의 바이트 순서를 재배열하여 압축률을 개선합니다. Shuffle을 지정하는 경우 ChunkSize도 지정해야 합니다.

데이터형: logical | double

텍스트 인코딩으로, 다음 값 중 하나로 지정됩니다.

  • "UTF-8" — UTF-8 인코딩을 사용하여 문자를 표현합니다.

  • "system" — 시스템 인코딩을 사용하여 문자를 바이트로 표현합니다(권장되지 않음).

데이터형: string | char

등록된 필터 플러그인의 필터 ID(The HDF Group에 의해 할당됨)로, 양의 정수로 지정됩니다. 등록된 필터의 목록을 보려면 The HDF Group 웹사이트의 필터 페이지를 참조하십시오.

CustomFilterID에 대한 값을 지정하지 않으면 압축을 위해 동적으로 불러온 필터가 데이터셋에 사용되지 않습니다.

CustomFilterID를 지정하는 경우 ChunkSize도 지정해야 합니다.

데이터형: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64

타사 필터용 필터 파라미터로, 숫자 스칼라 또는 숫자형 행 벡터로 지정됩니다. 이 인수를 함께 지정하지 않고 CustomFilterID를 지정할 경우 h5create 함수는 빈 벡터를 HDF5 라이브러리에 전달하고 필터는 디폴트 파라미터를 사용합니다.

이 이름-값 인수는 HDF5 라이브러리에 있는 H5Pset_filter 함수의 cd_values 인수에 대응됩니다.

CustomFilterParameters를 지정하는 경우 CustomFilterID도 지정해야 합니다.

데이터형: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64

R2024b 이후

SZIP 압축을 위한 인코딩 방법으로, "entropy" 또는 "nearestneighbor"로 지정됩니다. entropy 방법은 이미 처리된 데이터에 가장 적합합니다. nearestneighbor 방법은 데이터를 전처리한 후 entropy 방법을 적용합니다. SZIPEncodingMethod를 지정하는 경우 ChunkSize도 지정해야 합니다.

동일한 함수 호출에 SZIPEncodingMethodDeflate를 동시에 지정할 수는 없습니다.

데이터형: string | char

R2024b 이후

SZIP 압축을 위한 블록당 픽셀 수(HDF5 데이터 요소)로, 2에서 32까지의 짝수 정수로 지정됩니다. SZIPPixelsPerBlock을 지정하는 경우 SZIPEncodingMethod도 지정해야 합니다. SZIPPixelsPerBlock의 값은 각 데이터셋 청크의 요소 개수보다 작거나 같아야 합니다.

예: 32

데이터형: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64

세부 정보

모두 축소

  • 같은 데이터셋에서 deflate와 SZIP 필터를 모두 활성화하려면 로우 레벨 H5P.set_deflate 함수와 H5P.set_szip 함수를 사용합니다.

버전 내역

R2011a에 개발됨

모두 확장