MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [求助]VC调用Matlab中的FFT问题 (https://www.labfans.com/bbs/showthread.php?t=6843)

ljf22222 2009-03-14 16:47

[求助]VC调用Matlab中的FFT问题
 
以下这段VC编写的程序中能画出正弦函数的图像,但经过FFT变换后的图像画不出
请高手指点
mxArray *T=NULL,*a=NULL,*d=NULL,*M=NULL;
//利用mx函数库创建矩阵,传递参数。
T=mxCreateDoubleMatrix(1,N,mxREAL);
M=mxCreateDoubleMatrix(1,N,mxREAL);
memcpy((char*)mxGetPr(T),(char*)time,N*sizeof(double));
memcpy((char*)mxGetPr(M),(char*)val,N*sizeof(double));
//通过上面创建的Matlab Engine连接句柄将参数传递给Server端
engPutVariable(ep,"T",T);
engPutVariable(ep,"M",M);
//调用Matlab内建的函数和指令
engEvalString(ep,"figure(1); subplot(211); plot(T,M);");
engEvalString(ep,"xlabel('t'); ylabel('y');");
engEvalString(ep,"title('正弦信号y=50sin(2*pi*10t)时域波形');");
engEvalString(ep,"grid;");


[COLOR="DarkOrchid"][U]engEvalString(ep,"y=fft(M,N); mag=y;");[/U][/COLOR]

engEvalString(ep,"f=linspace(0,4,N);");
engEvalString(ep,"figure(1); subplot(212); plot(f,mag);");
engEvalString(ep,"xlabel('频率(Hz)'); ylabel('幅值'); title('正弦信号经FFT变换后的
幅频谱图N=1000');");
engEvalString(ep,"grid;");


所有时间均为北京时间。现在的时间是 05:14

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.