主题:关于java和matlab混编的问题
bigdaddy
[专家分:0] 发布于 2007-05-11 10:53:00
正在研究java和matlab混编。
我说一下想法和问题哈:可以通过io流将数据写到文件中,然后在matlab中读取这个数据文件,进行计算处理,并将数据处理返回到一个数据文件,然后再在java中读取这个文件就可以了。
现在尝试这样做时碰到了一个,就是如何在matlab中进行对象的类型转换。
m文件中的代码:
fis= FileInputStream('D:\matlab\datafile.txt');
ois= ObjectInputStream(fis);
m=(travel)ois.readObject();******
第3行就出错了,总提示找不到类travel,不知道是为什么。。。
回复列表 (共8个回复)
沙发
dreamgarden777 [专家分:50] 发布于 2007-05-11 11:52:00
出错的原因在于matlab里面调用java类时候,首先要用import引入相关类。
另外说一下你的想法:
我说一下想法和问题哈:可以通过io流将数据写到文件中,然后在matlab中读取这个数据文件,进行计算处理,并将数据处理返回到一个数据文件,然后再在java中读取这个文件就可以了。
------------你这个思路完全没有必要java和matlab混编。matlab对文件的操作能力就很强。
通常java和matlab混编都是用java做界面的或者其他的。
板凳
bigdaddy [专家分:0] 发布于 2007-05-11 13:44:00
1、我已经引入了这个类
m=travel();
m.add(1,3);
这样就可以运行(我在travel类中写了个简单的add方法)
返回ant=4。
但是这样用 m=(travel)ois.readObject();****** 就不行。
2、我是想实现matlab和java数据通讯。好象没有直接能够在java中调用matlab函数的方法。而且java写文件的话都是封装到一个对象里面了。那么matlab怎么读啊。
3 楼
bigdaddy [专家分:0] 发布于 2007-05-11 13:51:00
好吧,这么说吧。如果一个文件里面存放的是一个类的对象数据。比如一个
类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 楼
dreamgarden777 [专家分:50] 发布于 2007-05-11 13:54:00
matlab 2006b以后可以java调用matlab。有一个专门的工具箱。查一下。
matlab读写文件可以参考textread 等
5 楼
bigdaddy [专家分:0] 发布于 2007-05-11 14:53:00
你说的好象是javaBuilder.jar,但是我这个版本没有找到这个.jar,我用的还是7.0的。
我不是纯粹的存取数据,我是想把数据封装到对象中,然后将对象写入文件。就是不知道怎么在matlab中读写对象。
6 楼
dreamgarden777 [专家分:50] 发布于 2007-05-11 15:18:00
javabuilder是可以,如果你的版本不支持,可以下载一个java插件jmatlink 就可以调用matla的后台。
7 楼
bigdaddy [专家分:0] 发布于 2007-05-11 15:31:00
恩 我试试看。谢谢你耐心的回复!
8 楼
yuwg_le [专家分:20] 发布于 2007-06-27 01:25:00
貌似那个类还需要串行化,不知道楼主有没有串过?
我来回复