📄 matplot.cpp
字号:
#include <stdio.h>
#include "matplot.h"
#include "system.h"
#include "engine.h"
#include <memory.h>
void matDraw( double uArray[], double yArray[],double ydArray[] )
{
Engine* ep;
mxArray* u;//输入信号
mxArray* y;//系统输出
mxArray* yd;//参考输出
//打开引擎
if( !( ep= engOpen(NULL) ) )
printf("cannot open the engine!");
//构建各矩阵值
u = mxCreateDoubleMatrix(1, OPS, mxREAL);
memcpy( (void*) mxGetPr( u ), (void*) uArray, OPS*sizeof(double) );
engPutVariable( ep, "u", u );
y = mxCreateDoubleMatrix(1, OPS, mxREAL);
memcpy( (void*) mxGetPr( y ), (void*) yArray, OPS*sizeof(double) );
engPutVariable( ep, "y", y );
yd = mxCreateDoubleMatrix(1, OPS, mxREAL);
memcpy( (void*) mxGetPr( yd ), (void*)ydArray, OPS*sizeof(double) );
engPutVariable( ep, "yd", yd );
//画图
engEvalString(ep,"t= [0:1:59];");
engEvalString(ep,"plot(t,u);");
engEvalString(ep,"title('RBF网络输出');");
engEvalString(ep,"xlabel('t');");
engEvalString(ep,"ylabel('u');");
engEvalString(ep,"figure;");
engEvalString(ep,"t= [0:1:59];");
engEvalString(ep,"plot(t, y,'r+:', t, yd,'r*-');");
engEvalString(ep,"title('参考系统输出及控制系统输出');");
engEvalString(ep,"xlabel('t');");
engEvalString(ep,"ylabel('yd y');");
engEvalString(ep,"legend('+ 控制输出','* 参考输出');");
getchar();
//关闭引擎
engClose( ep );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -