⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cc.cpp

📁 his file contains a summary of what you will find in each of the files that make up your CC applica
💻 CPP
字号:
// CC.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "CC.h"
#include "ReadFromMat.h"

const double deta_lorenz=12.7277;
const double deta_hyperhenon = 1.002;
const double deta_hyperrossler = 19.4922;


int main(int argc, char* argv[])
{
	double ccSeq[length]={0};
	engine *ep;
	mxArray *px=NULL;
	mxArray *py=NULL;
	mxArray *pz=NULL;
	int i;
	if (!(ep=engOpen(NULL)))
	{
		cout<<"Can't start MATLAB engine"<<endl;
	}
	px=mxCreateDoubleMatrix(1,201,mxREAL);
	py=mxCreateDoubleMatrix(1,201,mxREAL);
	pz=mxCreateDoubleMatrix(1,201,mxREAL);
	readlorenz("c:\\lorenz.mat",ccSeq);
	//ReadMatFrHenon("C:\\HyperHenonX.mat",ccSeq);
	//检测数据是否读出
/*	for (i=0; i<length; i++)
	{
		cout<<ccSeq[i]<<" ";
		if (i%7==6)
			cout<<endl;
	}*/
	double r[4];
	double Sm1[4][201]={0}; //m,r,t数组
	double Sm2[4][201]={0};
	double Sm3[4][201]={0};
	double Sm4[4][201]={0};
	double dS[4][201];
	double mean_S[201]={0}; //均值
	double mean_dS[201]={0}; //最大最小差值的均值
	double *ps1[4];
    double *ps2[4];
	double *ps3[4];
	double *ps4[4];
	double Scor[201];
	int m;
	int t;
	
	for (i=0; i<4; i++)
	{
	    ps1[i]=Sm1[i];
        ps2[i]=Sm2[i];
		ps3[i]=Sm3[i];
		ps4[i]=Sm4[i];
	}
    //求得四个不同的半径值
	for (i=0; i<4; i++)
	{
		//r[i] = deta_hyperhenon*(i+1)/2;
		r[i] = deta_lorenz*(i+1)/2;
	}
    //m=2,3,4,5时S(m,r,t)的值
	for (t=1; t<=200; t++)
	{
		for (i=0; i<4; i++)
		{
		    Sm1[i][t] = CC(ccSeq,2,r[i],t);
			Sm2[i][t] = CC(ccSeq,3,r[i],t);
			Sm3[i][t] = CC(ccSeq,4,r[i],t);
			Sm4[i][t] = CC(ccSeq,5,r[i],t);
		    //cout<<Sm1[i][t]<<" ";			
		}
	}
    //计算出S[t]的均值
	for (t=1; t<=200; t++)
	{
		for (i=0; i<4; i++)
		//i=0;
		{
			mean_S[t] += Sm1[i][t]+Sm2[i][t]+Sm3[i][t]+Sm4[i][t];
		}
		mean_S[t] /= 16;
		//cout<<mean_S[t]<<" ";
	}
    MaxMin(ps1,dS[0]);
    MaxMin(ps2,dS[1]);
	MaxMin(ps3,dS[2]);
	MaxMin(ps4,dS[3]);
	//求得deta(S)的均值
	for (t=1; t<=200; t++)
	{
	    for (m=2; m<=5; m++)
		{
		    mean_dS[t] += dS[m-2][t];
		}
		mean_dS[t] /= 4;
		//cout<<mean_dS[t]<<" ";
	}	
	//为了作图方便,给数组初始元素赋值
	mean_S[0] = mean_S[1];
	mean_dS[0] = mean_dS[1];
	for (t=0; t<=200; t++)
	{
		Scor[t] = mean_S[t]+mean_dS[t]; 
		cout<<"No"<<t<<"is:"<<Scor[t]<<" ";
		if (t%4==3)
			cout<<endl;
	}

    //作图  
	memcpy((double *)mxGetPr(px), (double *)mean_S, sizeof(mean_S));
	memcpy((double *)mxGetPr(py), (double *)mean_dS, sizeof(mean_dS));
	memcpy((double *)mxGetPr(pz), (double *)Scor, sizeof(Scor));
	engPutVariable(ep,"X",px);
	engPutVariable(ep,"Y",py);
	engPutVariable(ep,"Z",pz);
    engEvalString(ep,"plot(X)");
	engEvalString(ep,"hold on");
    engEvalString(ep,"plot(Y)");
	//engEvalString(ep,"hold on");
    //engEvalString(ep,"plot(Z)");

	mxDestroyArray(px);
	mxDestroyArray(py);
	mxDestroyArray(pz);
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -