Как отменить сериализацию пользовательских объектов Java в Matlab, которые были сериализованы в Java? - PullRequest
0 голосов
/ 28 апреля 2011

У меня есть симулятор в Java, сериализующий пользовательский объект Result.Я хотел бы отменить сериализацию этих объектов в Matlab для дальнейшего статистического анализа.

Возможно ли это?

Данные в объекте Result разнородны.Он содержит другой пользовательский класс Parameters, связанные списки целых и двойных чисел.

Я отредактировал файл classpath.txt в корне моего java-пакета и успешно импортировал и Result, и Parameters.

Однако, если я попытаюсь десериализовать объект с помощью load ('filename');Я получаю следующую ошибку

>> load('Type3aa_simpleToCreate_no_com.2011-04-28
 00.05.29.experiment.data') ??? Error using ==> load Number of columns on
 line 1 of ASCII file
 C:\Thesis\code\Thesis
 v0.7\Results\Type3aa_simpleToCreate_no_com.2011-04-28
 00.05.29.experiment.data must be the same as previous lines.

1 Ответ

0 голосов
/ 28 апреля 2011

Я не так хорошо знаком со смешиванием Matlab и Java, но декодирование чего-то, что было закодировано с использованием сериализации Java, во что-то другое, чем код Java, кажется сложным.Сериализация смешивает множество аннотаций, связанных с конкретной компиляцией кода Java, в данные.

Я думаю, что вам лучше записывать данные в некотором текстоподобном формате, если вы хотите прочитать их вMatlab.

Кстати, сериализация имеет ряд проблем, из-за которых она редко используется, даже внутри Java.Зависимость от конкретных версий файлов классов - это одно, а другое - то, что это общеизвестно медленно.Я бы лично не использовал его ни для чего, но предпочел бы изобрести свой собственный формат кодирования, будь то текст / xml или какой-то компактный двоичный формат.

Обновление: мои мнения и опыт относительно медленности сериализации основаны наприложения с очень низким допуском на накладные расходы, которые могут быть не актуальны для всех.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...