如何在Matlab中取消序列化用Java序列化的用户定义Java对象?

如何在Matlab中取消序列化用Java序列化的用户定义Java对象?,java,serialization,matlab,object,Java,Serialization,Matlab,Object,我有一个Java模拟器,可以序列化自定义结果对象。我想在Matlab中取消这些对象的序列化,以便进行进一步的统计分析 这可能吗 结果对象中的数据是异构的。它包含另一个用户定义的类参数、整数和双精度链表 我将classpath.txt文件编辑到java包的根目录,并成功导入了结果和参数 但是,如果我尝试用load('filename')取消序列化对象;我得到以下错误 >> load('Type3aa_simpleToCreate_no_com.2011-04-28 00.05.29.

我有一个Java模拟器,可以序列化自定义结果对象。我想在Matlab中取消这些对象的序列化,以便进行进一步的统计分析

这可能吗

结果对象中的数据是异构的。它包含另一个用户定义的类参数、整数和双精度链表

我将classpath.txt文件编辑到java包的根目录,并成功导入了结果和参数

但是,如果我尝试用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.

我不太熟悉Matlab和Java的混合,但是在Java代码之外的其他东西中解码使用Java序列化编码的东西似乎很困难。序列化将大量与Java代码的特定编译相关的注释混合到数据中

我认为如果你想把数据读入Matlab,最好是用类似文本的格式编写数据

顺便说一句,序列化有许多问题,使得它很少使用,即使是在Java内部。依赖于类文件的特定版本是一回事,另一件事是它的速度非常慢。我个人不会用它做任何事情,但我更喜欢发明我自己的编码格式,不管是text/xml还是一些紧凑的二进制格式


更新:我对序列化缓慢的看法和经验是基于对开销容忍度非常低的应用程序,可能与每个人都不相关。

您对序列化的评论令人怀疑。在1997年,它可能和其他一切一样缓慢:当然不是现在,也从来没有“臭名昭著”过。序列化被广泛使用,例如在RMI中,因此在JMX中;Web服务器会话&托管bean。。。谢谢你的评论。我决定让java将变量写入一个文件中,从中我构建了一个Matlab结构。我放弃了它,因此也放弃了RMI,因为它在2003年前后速度慢得令人绝望。我的印象是,它在很大程度上已经被HTTP取代,成为通过网络交换消息的首选协议。但当然不是每个人都有相同的标准。