项目需要把matlab跑跑出来的图,在jsp里面呈现出来,因此需要混合编程。今天试了一下,简单的小程序,画出正弦曲线,从硬盘txt里面读入参数信息,然后跑出来的曲线保存为".jpg”格式的图像,还尝试了一下M文件互相调用的结果,不过M文件调用的时候会增加响应时间。原因还不知道
碰到的问题:
1.从txt里面读入信息,开始我使用的是类似C语言的那种使用fopen,fread等函数,可是我发现读出来的是ascii码,例如在文本中是4,读进来就是52,matlab里面没有atoi函数,但是有str2num,但是我没有尝试,估计也是可以的。在这里我用了importdata函数,事实证明,matlab还真是挺强大的。importdata读入的时候分为data和textdata,对于在出现字母之前的数字都被写为textdata,字母之后的数字都写为data。这两个部分构成一个元包cell可以直接调用
对于cell里面信息也可以使用matlab里面的函数转为矩阵或者double等格式。
还有许多种其他的方法:具体链接在于http://www.360doc.com/content/10/0827/10/352319_49114556.shtml
2.对于char类型的数据,可以通过多种方法实现转为ascii码的形式:
1)可以使用double(a),a是要转换的字符矩阵
2)unicode2native(a)
3.matlab计算完的图片可以通过print函数直接存储在指定位置
格式如下:print(handle,'存储的类型','存储的位置')
handle就是图片的句柄,例如figure(1);这时候handle就是1
存储的类型'-djpeg',这时候就是采用jpeg或者是jpg格式
存储的位置:这点和c语言不一样,硬盘符后面只用一个‘\’就可以了。例如存在D盘下,就是'D:\picture.jpg'而c语言需要'D:\\picture.jpg'
还需要的工作是:用jsp存储需要的参数信息,jsp调用生成的图片。最最重要的是搞定jsp这个东西。优化自己的matlab代码,尽量使之运算速度增快