Я хотел бы преобразовать некоторые файлы MAT в XML (каждый файл .mat содержит иерархическую структуру), чтобы я мог получить доступ к данным из другого программного обеспечения (например, R, Python). Эти файлы MAT были сгенерированы в Matlab 6.5, поэтому они не входят в спецификацию формата данных HDF5. Существует пользовательский набор инструментов XML (с 2003 года), который предлагает простое преобразование из MAT в XML:
http://www.mathworks.com/matlabcentral/fileexchange/4278
но, похоже, я сталкиваюсь с ошибкой при использовании функции xml_format:
??? NaN's cannot be converted to logicals.
Структура данных, которую я пытаюсь преобразовать, вложена на многих уровнях со многими типами данных (массивами и т. Д.), Поэтому мне, возможно, придется написать свою собственную функцию экспорта. Я использую Matlab Version 7.10.0.499 (R2010a) 64-bit (maci64), поэтому у меня должны быть доступны функции xmlwrite
и xmlread
:
http://www.mathworks.com/help/techdoc/import_export/f5-86078.html#bsmnj5u
Однако, когда я пытаюсь последовать их примеру,
docNode = com.mathworks.xml.XMLUtils.createDocument('root_element')
Я получаю ошибку:
??? Undefined variable "com" or class
Если я пытаюсь увидеть, какие классы Java загружены, я получаю
[M,X,J] = inmem;
J =
'MException'
хотя в моем $matlabroot/toolbox/local/classpath.txt
загружено много классов Java.
Нужно ли устанавливать модули Java или добавлять дополнительные пути, или что-то еще, чтобы это заработало? Или у вас есть предложения перейти от MAT к другому общему формату обмена данными, который допускает произвольное вложение структур (некоторые из которых содержат массив изображений)? Я не видел много способов преобразования MAT в HDF5, которые, похоже, могли бы стать разумной альтернативой переходу от MAT к XML ... Спасибо ~