C++에서 번역 할 matlab 스크립트가 있으므로 선형 대수 파트에 Armadillo 라이브러리를 사용하기로 결정했습니다. 그러나 conv()
기능으로 차단되었습니다. 나는이 시도 :conv (armadillo 라이브러리) 호출에 대한 일치 함수가 없음
hist2=arma::hist(X2,nbins);
arma::vec g (smoothingWindowWidth, 0.0);
int halfWidth = smoothingWindowWidth/2;
for (int i=0; i<smoothingWindowWidth; i++)
{
int n=i - halfWidth;
g[i]= exp(-0.5 *((n/((double)halfWidth))*(n/((double) halfWidth))));
}
g=g/(arma::sum(g));
arma::vec hist3= arma::conv(hist2,g,"same");
나는 다음과 같은 오류 얻을 컴파일하려고하면 " '(ARMA : uvec &, ARMA : VEC &, int)에 전환'을에 호출 일치 기능을" .
hist2
은 hist()
기능을 사용하여 이전에 uvec
으로 정의되었습니다. X2
은 vec
이고 nbins
은 int
입니다.
나는 conv()
이 vec
또는 uvec
을 매개 변수로 사용하지는 않지만 Armadillo 웹 사이트를 확인한 후에 오류를 이해하고 있는지 잘 모르겠습니다.
uvec
을 vec
으로 변환하려고했지만 아무 것도 변경하지 않았습니다.
도움 주셔서 감사합니다.
"동일"은 int가 아닙니다. –
나는 내 벡터에 너무 집중하여 'int'부분을 알아 채지 못했습니다. 왜 '동일'이 int인지 이해할 수 없습니다. 이 예제에서 문서화와 똑같은 내용을 입력하려고했지만 여전히 작동하지 않습니다. 오류는 'conv (arma :: uvec &, arma :: vec &, const char [5])'호출과 일치하는 함수가 없습니다. –
@RomainMartin - 아마 Armadillo의 이전 버전을 사용하고 있습니다. 최신의'conv()'함수. 이전 버전을 제거하고 [latest] (http://arma.sourceforge.net/download.html) 버전을 설치하십시오. – mtall