私は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型)CONV'をへの呼び出しのためのなしマッチング機能を" 。
hist2
は、hist()
機能を使用して以前にuvec
として定義されています。 X2
は、vec
とnbins
とint
です。
conv()
は、またはuvec
をパラメータとして使用していないようですが、Armadilloのウェブサイトを確認した後であることがわかります。
uvec
をvec
に変換しようとしましたが、何も変更されませんでした。
ありがとうございました!
"same"はintではありません。 –
私は自分のベクトルに集中していたので、「int」の部分に気付かなかった。 なぜ「同じ」がintであるのか分かりません。私は "同じ"と入力しようとしましたが、この例ではドキュメントが実行されましたが、それでも動作しません。エラーは 'conv(arma :: uvec&amp; arma :: vec&const char [5])'の呼び出しに一致する関数がありません。 –
@RomainMartin - おそらく旧バージョンのArmadilloを使用しています最新の 'conv()'関数です。以前のバージョンを削除し、[latest](http://arma.sourceforge.net/download.html)バージョンをインストールしてください。 – mtall