一、问题
在 python 中执 DTW 算法,但是太慢,想到了用c++写该算法,再用python执行
先贴一张效果图,可以看出,同样一份 dtw 代码,python 和 C++ 有10倍多的差距。
二、C++ 写法
有很多种方法可以在python里执行c++代码,这里选一个我觉得最简单的。推荐使用vs,编译如下代码,注意选择生成dll,而不是exe。
我的函数原型是 :
double dtw(double* x, int x_size, double* y, int y_size)
头文件里需要声明:
//头文件 main.h
#pragma once
#include<Windows.h>
extern "C"
{
__declspec(dllexport) double __cdecl dtw(double* x, int x_size, double* y, int y_size);
};
源文件里实现:
//源文件 main.cpp
#include "main.h"
#include <iostream>
double dtw(double* x, int x_size, double* y, int y_size)
{
double** D0 = (double**)