//author: Wang Hai-lin (wanghailinchn@hotmail.com)
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include "engine.h"
#pragma comment( lib, "libeng.lib" )
#pragma comment( lib, "libmx.lib" )
#pragma comment( lib, "libmat.lib" )
using namespace std;
Engine *ep;
mxArray *T = NULL,*Y=NULL;
double point[6][4];
int l;
int Draw(double *t,int flag)//画图
{
memcpy((void *)mxGetPr(T), (void *)point, 24 * sizeof(point[0][0]));
memcpy((void *)mxGetPr(Y), (void *)t, 2* sizeof(t[0]));
engPutVariable(ep, "T", T);
engPutVariable(ep, "Y", Y);
engEvalString(ep, "scatter(T(:,1),T(:,4),'r+');");
engEvalString(ep, "hold on;");
engEvalString(ep, "scatter(T(:,2),T(:,5),'r*');");
engEvalString(ep, "hold on;");
engEvalString(ep, "scatter(T(:,3),T(:,6),'r');");
engEvalString(ep, "hold on;");
switch (flag)
{
case -1:
engEvalString(ep, "scatter(Y(1,1),Y(1,2));");
break;
case 0:
engEvalString(ep, "scatter(Y(1,1),Y(1,2),'r+');");
break;
case 1:
engEvalString(ep, "scatter(Y(1,1),Y(1,2),'r*');");
break;
case 2:
engEvalString(ep, "scatter(Y(1,1),Y(1,2),'r');");
break;
}
engEvalString(ep, "hold on;");
engEvalString(ep, "xlabel('x');");
engEvalString(ep, "ylabel('y');");
engEvalString(ep, "axis([0,10,0,10]);");
getchar();
getchar();
engEvalString(ep, "close;");
return EXIT_SUCCESS;
}
bool Complare(vector<double> train1, vector<double> train2)
{
return train1[l] < train2[l];
}