网站 参数设置伊川网站开发
web/
2025/9/26 8:36:23/
文章来源:
网站 参数设置,伊川网站开发,建设完网站如何信息更新,南京多样化的网站建设定制公司如果你是需要快速搭建一个matlab调c/c环境#xff0c;这篇文章可以参考
有了c代码#xff0c;想在matlab里面调用#xff0c;可以参考我这个模板
matlab调用代码#xff1a;
clear all
close all
clcinput1 1;
input2 2;[output1,output2] mexfunction(input1,input2);…如果你是需要快速搭建一个matlab调c/c环境这篇文章可以参考
有了c代码想在matlab里面调用可以参考我这个模板
matlab调用代码
clear all
close all
clcinput1 1;
input2 2;[output1,output2] mexfunction(input1,input2);output1
output2
这里面强调两个概念
1、Matlab里面所有变量都是矩阵包括单变量也是1*1的矩阵
2、Maltab矩阵按列优先访问这个和fortran保持一致
Cpp代码 #include mex.hvoid c_func(double input1,double input2,double *output1,double *output2)
{}void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{ double *pdata; // mcnoidal(waveheight,waveperiod,0.02,waterdeepth ,0, datanum,1, waveheight,flapdeepth);pdatamxGetPr(prhs[0]); double input1 *pdata;int M mxGetM(prhs[0]);int N mxGetN(prhs[0]);printf(%d * %d\n,M,N);pdatamxGetPr(prhs[1]); double input2 *pdata;int m 3;int n 2;plhs[0] mxCreateDoubleMatrix(m, n, mxREAL); double *output1; output1 mxGetPr( plhs[0]);//列优先排列output1[0*m0] 1;output1[1*m0] 2;output1[0*m1] 3;output1[1*m1] 4;output1[0*m2] 5;output1[1*m2] 6; plhs[1] mxCreateDoubleMatrix(1, 1, mxREAL); double *output2;output2 mxGetPr( plhs[1]);output2[0] -1;//c_func(input1,input2,output1,output2) ;}
plhs 全称 parameters left matlab中的左侧输出值
prhs全称 parameters left matlab中的右侧输入值
plhs[0] plhs[1]是输出需要多少输出变量那么就在c中用mxCreateDoubleMatrix申请多少
所有的数字数组二位数字到c这边都是一维数组且按列优先访问。
输出如下 注三行两列的二维数组访问方式
int m3;
int n2;
//内存列优先排列但赋值按逐行赋值
output1[0*m0] 1;
output1[1*m0] 2;
output1[0*m1] 3;
output1[1*m1] 4;
output1[0*m2] 5;
output1[1*m2] 6;//列优先排列但按列赋值
output1[0*m0] 1;
output1[0*m1] 3;
output1[0*m2] 5;
output1[1*m0] 2;
output1[1*m1] 4;
output1[1*m2] 6;//另行优先排列按行赋值
output1[0*n0] 1;
output1[0*n1] 2;
output1[1*n0] 3;
output1[1*n1] 4;
output1[2*n0] 5;
output1[2*n1] 6;
在matlab 使用mex 编译一下预先需要mex setup
mex mexFunction.cpp 即可编译然后在malab直接调用。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82100.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!