main.cpp

来自「是“MATLAB混合编程与工程应用”一书的源码」· C++ 代码 · 共 46 行

CPP
46
字号
#include "StdAfx.h"
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
    double *dataA, *dataB, *Max, *Min;
    int m1, n1, m2,n2,s, i;
	/* 输入的必须是两个矩阵*/
    if(nlhs!=2) 
	{
      mexErrMsgTxt("Must be two matrixs");
	}
    /* 获得输入矩阵 */
    dataA = mxGetPr(prhs[0]);
    dataB = mxGetPr(prhs[1]);
    m1 = mxGetM(prhs[0]);
    n1 = mxGetN(prhs[0]);

    m2 = mxGetM(prhs[1]);
    n2 = mxGetN(prhs[1]);

	if((m1!=m2)||(n1!=n2))
	{
       mexErrMsgTxt("Two matrix must be same");    
	}
    /* 创建输出矩阵*/
    plhs[0] = mxCreateDoubleMatrix(m1, n1, mxREAL);
    Max= mxGetPr(plhs[0]);
    plhs[1] = mxCreateDoubleMatrix(m1, n1, mxREAL);
    Min=mxGetPr(plhs[1]);

    /* 计算最大最小矩阵 */
      s = m1*n1;
      for(i=0; i<s; i++) 
	  {
        if(dataA[i]>=dataB[i])
		{ Max[i] =dataA[i];
		  Min[i]=dataB[i];
		}
        else 
		{
			Max[i] = dataB[i];
			Min[i]=dataB[i];
		}
      }   
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?