📄 matplot.cpp
字号:
#include "matplot.h"
#include "stdlib.h"
#include "engine.h"
#include "system.h"
#include <memory.h>
void matDraw( double ridArray[], double rteArray[],double yidArray[], double yteArray[], double ydiArray[], double ydtArray[] )
{
Engine* ep;
mxArray* rid;//学习信号
mxArray* rte;//测试信号
mxArray* yid;//学习网络输出
mxArray* yte;//测试网络输出
mxArray* ydi;//学习期望输出
mxArray* ydt;//测试期望输出
//打开引擎
if( !( ep= engOpen(NULL) ) )
printf("cannot open the engine!");
//构建各矩阵值
rid = mxCreateDoubleMatrix(1, IDEN, mxREAL);
memcpy( (void*) mxGetPr( rid ), (void*) ridArray, IDEN*sizeof(double) );
engPutVariable( ep, "rid", rid );
rte = mxCreateDoubleMatrix(1, IDEN, mxREAL);
memcpy( (void*) mxGetPr( rte ), (void*) rteArray, IDEN*sizeof(double) );
engPutVariable( ep, "rte", rte );
yid = mxCreateDoubleMatrix(1, IDEN, mxREAL);
memcpy( (void*) mxGetPr( yid ), (void*) yidArray, IDEN*sizeof(double) );
engPutVariable( ep, "yid", yid );
yte = mxCreateDoubleMatrix(1, IDEN, mxREAL);
memcpy( (void*) mxGetPr( yte ),(void*) yteArray, IDEN*sizeof(double) );
engPutVariable( ep, "yte", yte );
ydi = mxCreateDoubleMatrix(1, IDEN, mxREAL);
memcpy( (void*) mxGetPr( ydi ), (void*) ydiArray, IDEN*sizeof(double) );
engPutVariable( ep, "ydi", ydi );
ydt = mxCreateDoubleMatrix(1, IDEN, mxREAL);
memcpy((void*) mxGetPr( ydt ), (void*) ydtArray, IDEN*sizeof(double) );
engPutVariable( ep, "ydt", ydt );
//画图
engEvalString(ep, "t= [0:0.1:1.9];");
engEvalString(ep, "plot(t, rid);");
engEvalString(ep, "title('辨识信号');");
engEvalString(ep, "xlabel('t');");
engEvalString(ep, "ylabel('rid');");
engEvalString(ep, "figure;");
engEvalString(ep, "t= [0:0.1:1.9];");
engEvalString(ep, "plot(t, rte);");
engEvalString(ep, "title('测试信号');");
engEvalString(ep, "xlabel('t');");
engEvalString(ep, "ylabel('rte');");
engEvalString(ep, "figure;");
engEvalString(ep, "t= [0:0.1:1.9];");
engEvalString(ep, "plot( t, ydi,'r*-',t, yid,'r+:');");
engEvalString(ep, "title('辨识期望输出及网络学习输出');");
engEvalString(ep, "xlable('t');");
engEvalString(ep, "ylable('ydi yid');");
engEvalString(ep, "legend('* 期望输出','+ 学习输出');");
engEvalString(ep, "figure;");
engEvalString(ep, "t= [0:0.1:1.9];");
engEvalString(ep, "plot(t, ydt,'r*-', t, yte,'r+:' );");
engEvalString(ep, "title('测试期望输出及网络学习输出');");
engEvalString(ep, "xlabel('t');");
engEvalString(ep, "ylabel('ydt yte');");
engEvalString(ep, "legend('* 期望输出','+ 学习输出');");
getchar();
//关闭引擎
engClose( ep );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -