⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 li2.txt

📁 这是机械工业张德丰《MATLAB与外部程序接口编程》随书源码
💻 TXT
字号:
# include "MATLAB.h"
# pragma comment(lib."libmx.lib")
# pragma comment(lib."libmat.lib")
# pragma comment(lib."libmex.lib")
# pragma comment(lib."libmatlb.lib")
void ComputePrimes(double*y,int n);
BooL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
{
	switch(ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH:
	case DLL_THREAD_ATTACH:
	case DLL_THREAD_DETACH:
	case DLL_PROCESS_DETACH:
		break;
	}
	return TRUE;
}
void mexFunction(int nlhs,mxArray*plhs[],int nrhs,const mxArray*prhs[])
{
	//输入/输出参数语法检查
	if(nrhs!=1)
	{
		mexErrMsgTxt("One input required.");
	}
	else if(nlhs>1)
	{
		mexErrMsgTxt("Too many output arguments");
	}
	/*输出参数必须不是复数,为此进行以下语法检测*/
	int mrows,ncols;
	mrows=mxGetM(prhs[0]);
	ncols=mxGetN(prhs[0]);
	if(!mxIsDouble(prhs[0]) || !(mrows==1 && ncols==1))
	{
		mexErrMsgTxt("Input must be a noncomplex scalar integer.");
	}
	//读入输入变量
	double x,*y;
	x=mxGetScalar(prhs[0]);
	/*Create matrix for the return argument.*/
	plhs[0]=mxCreateDoubleMatrix(mrows/*1*/,(int)x,mxREAL);
	y=mxGetPr(plhs[0]);
	//计算素数
	ComputePrimes(y,(int)x);
}
 //子程序,判断是否素数
void ComputePrimes(double*y,int n)
{
	int index=0,i=2;
	while(index!=n)
	{
		if(IsPrime(i))
		{
			y[index]=i;
			index++;
		}
		i++;
	}
}

//如果是素数,进行输出
BOOL IsPrime(int n)
{
	for(int i=2;i<=n/2;i++)
	{
		if(n%i==0)
			return FALSE;
	}
	return TRUE;
}

⌨️ 快捷键说明

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