64,646
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <vector>
#include <math.h>
using namespace std;
vector<vector<float> >* dtw(vector<float> seq1,vector<float> seq2);
int main()
{
vector<float> seq1;
float seq_1;
vector<float> seq2;
float seq_2;
cout<<"请输入seq1:";
while(cin>>seq_1)
{
seq1.push_back(seq_1);
}
cout<<endl<<endl;
cin.clear();
cout<<"请输入seq2:";
while(cin>>seq_2)
{
seq2.push_back(seq_2);
}
cout<<endl<<endl;
vector<vector<float> > *p_dtw=dtw(seq1,seq2);
cout<<(*p_dtw)[2][1]<<endl;
delete p_dtw;
return 0;
}
vector<vector<float> >* dtw(vector<float> seq1,vector<float> seq2)
{
vector<vector<float> > *dtwmatrix=new vector<vector<float> >;
for(int i=0;i<seq1.size();i++)
{
vector<float> v;
for(int j=0;j<seq2.size();j++)
{
v.push_back((i-j)*(i-j)+(seq1[i]-seq2[j])*(seq1[i]-seq2[j]));
}
dtwmatrix->push_back(v);
}
return dtwmatrix;
}
vector< vector<float> >* dtw(vector<float> seq1,vector<float> seq2);
int main()
{
vector<float> seq1;
float seq_1;
vector<float> seq2;
float seq_2;
cout<<"请输入seq1:";
while(cin>>seq_1)
{
seq1.push_back(seq_1);
}
cout<<endl<<endl;
cin.clear();
cout<<"请输入seq2:";
while(cin>>seq_2)
{
seq2.push_back(seq_2);
}
cout<<endl<<endl;
vector<vector<float> > *p_dtw=dtw(seq1,seq2);
cout<<(*p_dtw)[0][0]<<endl;
delete p_dtw;
return 0;
}
vector< vector<float> >* dtw(vector<float> seq1,vector<float> seq2)
{
vector< vector<float> > *dtwmatrix=new vector< vector<float> >;
for(int i=0;i<seq1.size();i++)
{
for(int j=0;j<seq2.size();j++)
{
vector<float> v;
v.push_back((i-j)*(i-j)+(seq1[i]-seq2[j])*(seq1[i]-seq2[j]));
(*dtwmatrix).push_back(v);
}
}
return dtwmatrix;
}
vector<vector<float> >* dtw(vector<float> seq1,vector<float> seq2)
{
typedef vector<vector<float> > container_type;
container_type* dtwmatrix = new container_type( seq1.size(), vector<float>(seq2.size()) );
//vector<<vector<int> > array(N, vector<int>(M)) N行M列
for(int i=0;i<seq1.size();i++)
{
for(int j=0;j<seq2.size();j++)
{
(*dtwmatrix)[i].push_back((i-j)*(i-j)+(seq1[i]-seq2[j])*(seq1[i]-seq2[j]));
}
}
return dtwmatrix;
}