登录论坛

查看完整版本 : [求助]VC调用Matlab中的FFT问题


ljf22222
2009-03-14, 16:47
以下这段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;");


engEvalString(ep,"y=fft(M,N); mag=y;");

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;");