Найти все различия между файлами матов без MATLAB?
Вы можете найти различия между HDF5 на основе файлы .mat с Инструменты HDF5.
Пример
Позвольте мне сократить ваш пример MATLAB и предположить, что вы создаете два матовых файла с
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 и сравнить два вывода с помощью инструмента по вашему выбору.
Сравнение также работает напрямую с инструментами HDF5. Чтобы сравнить два числа a
из обоих файлов, используйте
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 есть еще несколько команд и параметров, которые может помочь решить вашу настоящую проблему.
Двоичные дистрибутивы для Linux и Windows доступны в группе HDF. Для OS X их можно установить через MacPorts. При необходимости есть также графический интерфейс: HDFView.
person
BHF
schedule
11.10.2013
Simulink.saveVars
вместоsave
. посмотри мой ответ - person Mohsen Nosratinia   schedule 02.10.2013visdiff
можно использовать с компилятором MATLAB. - person BHF   schedule 12.10.2013