h5create
HDF5 데이터셋 생성
설명
예제
전체 경로 /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
에 데이터를 씁니다. 이 차원이 무제한이므로 두 번째 차원을 따라 임의 크기의 데이터를 쓸 수 있습니다. 또한 데이터셋의 한 차원이 무제한이므로 데이터셋에 데이터를 쓸 경우 start
및 count
인수를 지정해야 합니다.
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
은 다음 형식 중 하나가 될 수 있습니다.
위치 | 형식 | ||||||
---|---|---|---|---|---|---|---|
현재 폴더 | 현재 폴더에 쓰려면 예: | ||||||
다른 폴더 | 현재 폴더가 아닌 다른 폴더에 쓰려면 예: 예: | ||||||
원격 위치 | 원격 위치에 쓰려면
원격 위치에 따라
자세한 내용은 원격 데이터로 작업하기 항목을 참조하십시오. 예: |
데이터셋 이름으로, 생성할 데이터셋의 전체 경로 이름을 포함하는 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
도 지정해야 합니다.
동일한 함수 호출에 Deflate
와 SZIPEncodingMethod
를 동시에 지정할 수는 없습니다.
데이터형: 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 압축을 위한 블록당 픽셀 수(HDF5 데이터 요소)로, 2에서 32까지의 짝수 정수로 지정됩니다. SZIPPixelsPerBlock
을 지정하는 경우 SZIPEncodingMethod
도 지정해야 합니다. SZIPPixelsPerBlock
의 값은 각 데이터셋 청크의 요소 개수보다 작거나 같아야 합니다.
예: 32
데이터형: double
| single
| uint8
| uint16
| uint32
| uint64
| int8
| int16
| int32
| int64
세부 정보
청크 저장은 데이터셋을 청크라는 작은 데이터 조각으로 나누어 메모리에 저장하는 방법을 가리킵니다. 데이터셋을 청크화할 경우 HDF5 파일에서 청크를 개별적으로 읽고 쓸 수 있으므로 데이터셋의 서브셋을 대상으로 작업할 때 성능을 개선할 수 있습니다.
팁
같은 데이터셋에서 deflate와 SZIP 필터를 모두 활성화하려면 로우 레벨
H5P.set_deflate
함수와H5P.set_szip
함수를 사용합니다.
버전 내역
R2011a에 개발됨SZIPEncodingMethod
와 SZIPPixelsPerBlock
이름-값 인수를 사용하여 SZIP 압축을 통해 데이터셋을 만들 수 있습니다.
CustomFilterID
및 CustomFilterParameters
이름-값 인수를 사용하여 동적으로 불러온 필터를 사용한 압축이 가능하게 할 수 있습니다.
Amazon S3, Windows Azure Blob Storage, HDFS™와 같은 원격 위치에 HDF5 파일을 생성할 수 있습니다.
이름이 유니코드 문자로 인코딩된 HDF5 파일을 생성할 수 있습니다.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- 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)