MATLAB を使用せずに、mat ファイル間のすべての違いを見つけますか?
HDF5 Toolsを使用して、HDF5ベースの.mat ファイルの違いを見つけることができます。
例
MATLAB の例を短くして、2 つのマット ファイルを作成すると仮定します。
clear ; a = 6 ; b.c = 'hello' ; save -v7.3 f1
clear ; a = 7 ; b.e = 'world' ; save -v7.3 f2
MATLAB 以外での使用
h5ls -v -r f1.mat
f1.mat に含まれるデータの種類に関するリストを取得するには:
Opened "f1.mat" with sec2 driver.
/ Group
Location: 1:96
Links: 1
/a Dataset {1/1, 1/1}
Attribute: MATLAB_class scalar
Type: 6-byte null-terminated ASCII string
Data: "double"
Location: 1:2576
Links: 1
Storage: 8 logical bytes, 8 allocated bytes, 100.00% utilization
Type: native double
/b Group
Attribute: MATLAB_class scalar
Type: 6-byte null-terminated ASCII string
Data: "struct"
Location: 1:800
Links: 1
/b/c Dataset {5/5, 1/1}
Attribute: H5PATH scalar
Type: 2-byte null-terminated ASCII string
Data: "/b"
Attribute: MATLAB_class scalar
Type: 4-byte null-terminated ASCII string
Data: "char"
Attribute: MATLAB_int_decode scalar
Type: native int
Data: 2
Location: 1:1832
Links: 1
Storage: 10 logical bytes, 10 allocated bytes, 100.00% utilization
Type: native unsigned short
の使用
h5ls -d -r f1.mat
格納されたデータの値を返します。
/ Group
/a Dataset {1, 1}
Data:
(0,0) 6
/b Group
/b/c Dataset {5, 1}
Data:
(0,0) 104, 101, 108, 108, 111
データ104, 101, 108, 108, 111
は単語hello
を表し、次のように表示できます。
h5ls -d -r f1.mat | tail -1 | awk '{FS=",";printf("%c%c%c%c%c \n",$2,$3,$4,$5,$6)}'
f2.mat の同じリストを取得し、選択したツールで 2 つの出力を比較できます。
比較はHDF5 ツールでも直接機能します。a
両方のファイルの 2 つの数値を比較するには、次を使用します。
h5diff -r f1.mat f2.mat /a
値とその違いが表示されます
dataset: </a> and </a>
size: [1x1] [1x1]
position a a difference
------------------------------------------------------------
[ 0 0 ] 6 7 1
1 differences found
attribute: <MATLAB_class of </a>> and <MATLAB_class of </a>>
0 differences found
備考
HDF5 Toolsにはさらにいくつかのコマンドとオプションがあり、実際の問題を解決するのに役立つ場合があります。
The HDF Groupから Linux および Windows 用のバイナリ ディストリビューションを入手できます。OS X の場合、 MacPorts経由でインストールできます。必要に応じて、GUI: HDFViewもあります。