matlab基本组件,matlab的组件是什么?

matlab 的组件时什么?

-------------

自定义的com系统。

只要明白com的原理,自己作出一个针对某一个方向的类com不是很难

com的复杂性,大部分来源于 他的几种分离思想的实现,和他的通用型目的。

把matlab脚本编译成一个可以动态连接的东西,

这个东西,可以通过某种方式返回一个对象指针

这些对象实现某种约定。

思考到这里,发觉matlab根本就不会把matlab脚本编译成通用的我们说得com,

要知道com都是要占注册表的。matlab那么大的库,要是都注册了,系统要是不完蛋,就

出奇了。

要是我是matlab的设计者。我回这么做:

首先定义一些dll中必须实现的输出方法。如

GetObj();

这个函数返回一个特定对象的指针。而这个对象是实现了某个接口的。

原型类似 DllExport void* GetObj();

然后在matlab的核心程序中,当用户键入一个命令后,

第一大步,找

1 解析得到命令名和参数列表

2 检索核心里实现的方法,如关于矩阵处理的一些基本运算,(这些运算使用频率高,

需要很高的效率,所以matlab放到了核心里。)

3 如果2检索不到,到库目录下寻找(包括com和一些matlab脚本文件)

4 如果3找不到,到当前工作目录下寻找com或脚本

以上四部是shell的共性。想想dos shell,linux shell,是不是很相似,内部命令,外部命令。

第二大步,用

1 如果是脚本,解释执行。

2 如果是com,这是我们讨论的重点。

3 loadlibrary

4 getobject,并用接口指针,指向他。

5 使用接口指针,传递参数,调用方法。完成特定功能。

第三步,输出

格式化返回值,并输出

这样,功能matlab的骨头就建起来了。

相似的例子:

研究插件时,我看过的RealPlugin

看java源码时看到的   JVM 实现

使用了相似的技术

mediaplayer 插件和用户编程人员接口 老实巴交的使用了标准的com。(自家产的东西,自家用)

realplayer 只是在最外层,用户接口这一层用到了标准com。plugin是自定义的。

兄弟,是在参加数学建模大赛嘛?  令人怀念啊。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值