第一范文网 - 专业文章范例文档资料分享平台

如何将Matlab7.0函数转换成VC++6.0动态链接库

来源:用户分享 时间:2025/5/24 14:35:29 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

for(j=0;j

printf(\ printf(\ }

printf(\}

该C++程序运算结果如下图所示

(4) 当用命令2生成的DLL 函数时,在工程文件Test.cpp中添加以下代码:

#include \ // 输入输出头文件 #include \ // mwArray类型声明 #include \ // DLL头文件

void display(const double* data, const int r, const int c, const char* name);

int main() { // 初始化程序

if( !mclInitializeApplication(NULL,0) ) {

fprintf(stderr, \ exit(1); } // 初始化库 if (!libsum_prodInitialize()) {

fprintf(stderr,\ exit(1); } // 声明DLL函数输入输出mwArray对象 mwArray X(2,3,mxDOUBLE_CLASS); mwArray Y(2,3,mxDOUBLE_CLASS); mwArray SUM,PROD;

9

double x[] = {1,2,3,4,5,6}; double y[] = {7,8,9,10,11,12}; double *sum,*prod; sum = new double[6]; prod = new double[6]; // 给输入mwArray对象赋值 X.SetData(x,6); Y.SetData(y,6); // 调用DLL函数 sum_prod(2,SUM,PROD,X,Y); // 取出输出数据 SUM.GetData(sum,6); PROD.GetData(prod,6); // 显示mwArray对象 // std::cout << \ // std::cout << \ display(sum,2,3,\ display(prod,2,3,\ delete sum; delete prod; // 关闭库和程序 libsum_prodTerminate(); mclTerminateApplication(); return 0; }

// 显示矩阵函数

void display(const double* data, const int r, const int c, const char* name) {

int i,j; printf(\ for(i=0;i

10

for(j=0;j

printf(\ printf(\ }

printf(\}

该C++程序运算结果如下图所示

特别说明:

在C\\C++环境中二维数组是“行向量”,如果将下面定义的变量x看成二维数组的话 double x[] = {1,2,3,4,5,6};

那么x应该是2?3的矩阵,即 x = [1,2,3;

4,5,6];

但是,如果将数组首地址x初始化mxArray和mwArray类时,数组x在mxArray和mwArray类中是按“列向量”的形式排列的,即 X = [1,3,5;

2,4,6]; 同理,这里 Y = [7,9,11;

8,10,12];

因此才能得到上图的结果

11

如何将Matlab7.0函数转换成VC++6.0动态链接库.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9dbku5ixox47ty70k2d7_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top