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

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;i10

for(j=0;jprintf(\ 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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值