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

📄 asdyjabsdfg.txt

📁 c源码程序关于matlab学习
💻 TXT
字号:
dfreyrtuyrtu
rytrutrutyu
wetreutrujtyi
frhtryrturturturt
Void CtestmatlabDlg::OnMatlabEngine(){
Engine *ep;
mxArray* T=NULL,*result=NULL,*mFs=NULL,*mnfft= NULL;
double datax[1024];
char buffer[1024];
for(int j=0;j<1024;j++)//注:如通过采集卡采集数据可将采集的数据放在datax[]数组中,此循环就不需要
{
double samt=(double)(1.0/1024); 
datax[j]=sin(2.0*63.0*samt*3.1415926+1.15*3.1415926);
}
double *pPxx,*pFxx;
if(!(ep=engOpen(" \0"))){//打开Matlab引擎,建立与本地Matlab的连接
fprintf(stderr,"\n Can't start MATLAB engine\n");
exit(-1);
} 
double Fs[1]={1024};//因为Matlab所有参与运算的参数都是矩阵的形式,因而下列几行将参数转变
double nfft[1]={1024};//成Matlab可接受的矩阵形式。
T=mxCreateDoubleMatrix(1,1024,mxREAL);
mnfft=mxCreateDoubleMatrix(1,1,mxREAL);
mFs=mxCreateDoubleMatrix(1,1,mxREAL);
mxSetName(T,"T");
mxSetName(mnfft,"mnfft");
mxSetName(mFs,"mFs");
memcpy((char*)mxGetPr(T),(char*)datax, 1024*sizeof(double));
memcpy((char*)mxGetPr(mnfft),(char*)nfft, sizeof(double));
memcpy((char*)mxGetPr(mFs),(char*)Fs,1*sizeof(double));
engPutArray(ep,T); //将转化的参数放入引擎中,此时可在Matlab command窗口下查看此参数
engPutArray(ep,mnfft); 
engPutArray(ep,mFs);
engEvalString(ep,"[pxx,fo]=psd(T,mnfft,mFs);"); //利用引擎执行工具箱中文件
engOutputBuffer(ep,buffer,512); //如只想看显示图形,可将返回参数去掉,psd无返回参数缺省情况下会自动画图形
result=engGetArray(ep,"pxx");//取出引擎中的数据放在所指的区域中供后续处理
pPxx=mxGetPr(result); 
result=engGetArray(ep,"fo");
pFxx=mxGetPr(result);
engEvalString(ep,"plot(fo,10*log10(pxx));");//利用引擎画图
engEvalString(ep,"title('功率谱分析');");
engEvalString(ep,"xlabel('Hz');");
engEvalString(ep,"ylable('db');");
mxDestroyArray(T); //释放内存
mxDestroyArray(mFs);
mxDestroyArray(mnfft);
mxDestroyArray(result);
engEvalString(ep,"close;");
engClose(ep);
}

⌨️ 快捷键说明

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