В R есть пакет с dtw алгоритмом но он очень медленный, я решил его заменить на dtw который написан на с++ от сюда . Скажу сразу, я только изучаю програмирование и R мой первый язык, с другими языками я не знаком и с с++ в частности тоже, так что не удивляйтесь если я чего то не понимаю, даже если ето что то очень тривиальное...
Все что мне нужно от функции это чтоб она принимала на вход два вектора произвольной длинны и на выходе давала евклидову дистанцию между этими векторами те меру близости, и все.. максимально быстро и максимально коротко
Итак взял я код из выше указанной ссылки и попробовал его интегрировать в R с помощью Rccp Но не заработало, мне кажется что в начале как то не правильно объявляться переменные и их типы
#include <Rcpp.h>
using namespace Rcpp;
DEFUN_DLD (dtw3, args, , "Find DTW of two signals with window")
{
int nargin = args.length();
if (nargin != 2)
print_usage();
Matrix A = args(0).array_value();
Matrix B = args(1).array_value();
octave_stdout << "Size of A is " << A.length() << std::endl;;
octave_stdout << "Size of B is " << B.length() << std::endl;
if (! error_state)
{
octave_idx_type n = A.length();
octave_idx_type m = B.length();
Matrix results (n + 1, m + 1);
for(octave_idx_type i = 0; i <= n ; i++)
for(octave_idx_type j = 0; j <= m ; j++)
results(i, j) = octave_Inf;
results(0, 0) = 0;
octave_idx_type win = abs (n-m);
double cost = 0;
for(octave_idx_type i = 1 ; i <= n ; i++)
for(octave_idx_type j = std::max(1, i-win) ; j <= std::min(m, i+win) ; j++)
{
cost = abs(A(i-1) - B(j-1));
results(i, j) = cost + std::min(std::min(results(i-1,j),results(i,j-1)),results(i-1,j-1));
}
//octave_stdout << results << std::endl;
return ovl(results(n, m));
}
}
Подскажите пожалуйста что нужно изменить в этом коде?
ЗдравствуйтеЯ пишу небольшую программку для работы с заметками
Хочу, чтобы при импорте из csv к каждой записи добавлялось поле "время добавления"Думал сделать по аналогии, как при обычном запросе и добавить...
Делаю билинговую систему к торговой интернет-площадкеВ таблицах tbl_user - пользователи, tbl_billing_refill - пополнения баланса, tbl_billing - покупки/продажи...
У меня есть расписание на экранеНадо, чтобы по нажатию кнопки осуществлялся ScrollTo() либо ScrollBy() к элементу, но я не знаю, как определять координаты...