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

2026/4/29 4:17:49

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文档下载到电脑
搜索更多关于: 如何将Matlab7.0函数转换成VC++6.0动态链接库 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219