📄 flxor.c
字号:
#include <math.h>
#include "mex.h"
/*
* Wes Wang, Cleve Moler, 10/5/95
* Copyright (c) 1995-96 The MathWorks, Inc.
* All Rights Reserved
* $Revision: 1.1 $ $Date: 1996/04/01 18:13:56 $
*/
void mexFunction(int nlhs, Matrix *plhs[], int nrhs, Matrix *prhs[])
/*
* FLXOR Flint bitwise exclusive or (vectorized).
* r = flxor(i,j)
*/
{
int mi,ni,mj,nj,m,n,k,inci,incj;
double *pi,*pj,*pr;
mi = mxGetM(prhs[0]);
ni = mxGetN(prhs[0]);
mj = mxGetM(prhs[1]);
nj = mxGetN(prhs[1]);
if ((mi == 1) & (ni == 1) & (mj == 1) & (nj == 1)) {
*mxGetPr(plhs[0] = mxCreateFull(1,1,0)) =
(double) (((int)mxGetScalar(prhs[0])) ^ ((int)mxGetScalar(prhs[1])));
return;
} else if ((mi == mj) & (ni == nj)) {
m = mi;
n = ni;
inci = 1;
incj = 1;
} else if ((mj == 1) & (nj == 1)) {
m = mi;
n = ni;
inci = 1;
incj = 0;
} else if ((mi == 1) & (ni == 1)) {
m = mj;
n = nj;
inci = 0;
incj = 1;
} else {
mexErrMsgTxt("Matrix dimensions must agree.");
}
pi = mxGetPr(prhs[0]);
pj = mxGetPr(prhs[1]);
pr = mxGetPr(plhs[0] = mxCreateFull(m,n,0));
for (k = 0; k < m*n; k++) {
*pr++ = (double) (((int) *pi) ^ ((int) *pj));
pi += inci;
pj += incj;
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -