当前位置:文档之家› MATLAB外部网络接口的实现

MATLAB外部网络接口的实现

第21卷第4期

计算机仿真2004年4月文章编号:1006—9348(2004)04一0159—03

MATLAB外部网络接口的实现

戴余良1,曾斌2,曾晓华1,左洪波1

(1.海军工程大学船舶与动力学院,湖北武汉430033;2.海军工程大学管理工程系,湖北武汉430033)摘要:MATLAB是一个高级的数学分析和计算软件,它在科技领域的应用越来越广泛。但是,由于它不支持网络通信,使其在当今网络化时代的应用受到限制。文中提出了一种利用MATLAB外部函数接口(MEX动态链接函数接口),解决这个问题的方案,通过试验证明该方法是可行的。

关键词:函数;网络通信;软件

中图分类号:TP393.09文献标识码:A

1引言

MATLAB是一个高级的数学分析

和计算软件,具有科学计算与可视化

功能、简单易用的开放式可扩展环境

以及多达30多个面向不同领域而扩

展的工具箱支持,集计算机辅助设

计、分析与仿真于一体。MATLAB本

身不支持网络和多线程,但是他们提

供的外部接口,具有支持底层硬件访

问和开发的能力。通过外部接口用

户可以扩展MATLAB的功能。MAT.

LAB提供的外部接口是可自定义的

外部动态链接函数一M联函数(MEX

—function)。因此,我们利用C语言

编写自定义的MEX函数,经过反复

试验,在MATLAB中实现了网络通信

功能,同时实现了采用多线程来监视

和接收网上数据。

2网络通信的实现

2.1MEX函数简介

MEX函数㈨3J是一种能被MATLAB调用的动态链接子程序,用户可以利用MATLAB的API,使用c语言、Fortran语言等编写MEX函数。MEX函数需要用mex工具编译成MEX文件,它在Windows操作系统下具有dll扩展名,编译完成的MEX函数就可以象其它内建的MATLAB函数一样使用。

MEX函数源代码由两部分组成:第一部分称为入口子程序(gatewayroutine),第二部分称为计算子程序(computationalroutine)。入口子程序的作用主要是在MATLAB系统与被调用的外部子程序之间建立通信联系,也就是:定义被MATLAB调用的外部子程序的入口地址,定义MATLAB系统向子程序

收稿13期:2003一01—27图1MATLAB调用MEX函数原理图

传递的参数,还定义子程序向MATLAB系统返回的参数,以及调用计算子程序等。而计算子程序就是要链接的外部子程序;它用于完成用户定义的一些特定功能,如:数值计算,数据的输入、输出,对硬件的访问和开发,以及网络通信,等等;它由入口子程序调用。

MEX函数源代码的两部分既可以分开,也可以组合在一起,但无论怎样,文件头必须包含语句#include“lnex.h”,入口子程序的函数名必须是mexFuction,其构成形式为:voidmexFunetion(

intnlhs,mxAn麓y。plhs[],

intnrhs,constmxArray”prhs[])

/*必要的c代码*/

一159—

 万方数据万方数据

相关主题
文本预览
相关文档 最新文档