打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
画图技巧 : 让Matlab将数据传送给Origin

神操作之Origin调用MATLAB Console 获取数据画图

有时候使用Matlab进行了大量的计算工作,然后想要绘制一些数据图形,感觉用Origin会更方便一些,于是想把这些数据直接传送给Origin,但是怎么传呢?
使用OriginPro7.5,拥有Matlab Console工具,但是使用它有一个问题,当在Origin中打开Matlab Console时,会创建一个新的Matlab实例,而不是与已经打开的Matlab相连接。

为了使OriginPro7.5能够与已经打开的Matlab相连,只需要很简单的步骤:

  • 打开Matlab快捷方式的属性窗口,在“目标”一栏,在Matlab的路径后面加上两个参数/Automation和/desktop即可。例如:

    “C:\Program Files\MATLAB\R2008a\bin\matlab.exe” /Automation /desktop

  • 以后,使用这个快捷方式打开的Matlab,就可直接与Origin连接了。


    如果Matlab已经打开,启动Origin,打开Matlab Console,此时不会创建新的Matlab实例,而是与已经打开的Matlab连接,使用gr和gc命令即可获取Matlab中的数据。

当然,不使用Automation方式打开Matlab也可达到目的。

假设我们打开了一个Matlab**(以非Automation模式,为了区分,将其称为MatlabA)**,进行了一些运算,想要传送计算结果给Origin,于是打开了OrginPro7.5并启动了Matlab Console,此时Origin会创建一个Matlab Server(为方便区分,称为MatlabB),这个Server(MatlabB)与之前打开的Matlab(MatlabA)不是同一个实例,但是这两个实例是可以传输数据的,我想Origin大概是以Shared方式创建的Matlab Server。

  • 在MatlabA中执行

    actxserver('matlab.application’)

  • 可获得Origin创建的MatlabB的handle,使用这个handle就可将数据从MatlabA传送给MatlabB,例如,在MatlabA中输入:

    A=[1 2;3 4];
    h.PutWorkspaceData('B’, 'base’, A);

  • 将MatlabA中的矩阵A传送给了MatlabB,并在MatlabB将这个矩阵命名为B。

  • 切换到Origin的Matlab Console,输入:

    gr B

  • 就在Origin中得到了矩阵[1 2;3 4]。

  • 值得注意的是,如果MatlabA不再需要对MatlabB传送数据,就使用

    h.release

  • 这并不会直接销毁Origin创建的Matlab Server,而是减少它的引用计数,所以不必担心release会对Origin的Matlab Console带来什么影响。

完毕 开始作图吧

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
学术干货 | 以图服人,Origin画3D炫图的详细教程
机器学习数据集制作与划分MATLAB实现 – OmegaXYZ
Matlab中用到的一些函数
MATLAB如何将多维矩阵以列数据的的方式变成一维矩阵。
MATLAB介绍
Origin教程第七章 使用Origin绘制三维图形
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服