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)