回 帖 发 新 帖 刷新版面

主题:关于java和matlab混编的问题

正在研究java和matlab混编。
我说一下想法和问题哈:可以通过io流将数据写到文件中,然后在matlab中读取这个数据文件,进行计算处理,并将数据处理返回到一个数据文件,然后再在java中读取这个文件就可以了。
现在尝试这样做时碰到了一个,就是如何在matlab中进行对象的类型转换。
m文件中的代码:
fis= FileInputStream('D:\matlab\datafile.txt');
ois= ObjectInputStream(fis);
m=(travel)ois.readObject();******
第3行就出错了,总提示找不到类travel,不知道是为什么。。。

回复列表 (共8个回复)

沙发

出错的原因在于matlab里面调用java类时候,首先要用import引入相关类。

另外说一下你的想法:
我说一下想法和问题哈:可以通过io流将数据写到文件中,然后在matlab中读取这个数据文件,进行计算处理,并将数据处理返回到一个数据文件,然后再在java中读取这个文件就可以了。
------------你这个思路完全没有必要java和matlab混编。matlab对文件的操作能力就很强。

通常java和matlab混编都是用java做界面的或者其他的。

板凳

1、我已经引入了这个类
m=travel();
m.add(1,3);
这样就可以运行(我在travel类中写了个简单的add方法)
返回ant=4。
但是这样用 m=(travel)ois.readObject();****** 就不行。

2、我是想实现matlab和java数据通讯。好象没有直接能够在java中调用matlab函数的方法。而且java写文件的话都是封装到一个对象里面了。那么matlab怎么读啊。

3 楼

好吧,这么说吧。如果一个文件里面存放的是一个类的对象数据。比如一个
类point{
int x,y;
point(int x,int y){
this.x=x;
this.y=y;
}
getX...
setX...
getY...
setY...
}
p1(1,2);
p2(3,4);
我将2个点的坐标寸入到一个文件,那么在matlab中怎么获得这个两个点的坐标。

4 楼

matlab 2006b以后可以java调用matlab。有一个专门的工具箱。查一下。
matlab读写文件可以参考textread 等

5 楼

你说的好象是javaBuilder.jar,但是我这个版本没有找到这个.jar,我用的还是7.0的。

我不是纯粹的存取数据,我是想把数据封装到对象中,然后将对象写入文件。就是不知道怎么在matlab中读写对象。

6 楼

javabuilder是可以,如果你的版本不支持,可以下载一个java插件jmatlink 就可以调用matla的后台。

7 楼

恩 我试试看。谢谢你耐心的回复!

8 楼


貌似那个类还需要串行化,不知道楼主有没有串过?

我来回复

您尚未登录,请登录后再回复。点此登录或注册