重複の可能性:
1.0による乗算の精度とint<=>浮動小数点変換
armadillo c ++線形ライブラリを使用していますが、一貫した結果を取得するのに問題があります。ベクトルfreqを出力するときは正しい値ですが、スカラー値を掛けると間違っています。freq * 1.0でも!どんな提案も素晴らしいでしょう。
mat::fixed<621,1>freq;
2.0 * arma::datum::pi * freq
重複の可能性:
1.0による乗算の精度とint<=>浮動小数点変換
armadillo c ++線形ライブラリを使用していますが、一貫した結果を取得するのに問題があります。ベクトルfreqを出力するときは正しい値ですが、スカラー値を掛けると間違っています。freq * 1.0でも!どんな提案も素晴らしいでしょう。
mat::fixed<621,1>freq;
2.0 * arma::datum::pi * freq
あなたの問題を再現できません。
問題を示す正確なスタンドアロン コードを投稿する必要があります。つまり、使用しているすべての機能。つまり、投稿したプログラムは、他の関数を使用せずに、Armadillo の依存関係のみを使用して (つまり、Matlab を使用せずに) コンパイルできることを意味します。
次のコードを使用すると、問題は発生しません。
#include <iostream>
#include "armadillo"
using namespace arma;
using namespace std;
int main(int argc, char** argv)
{
mat::fixed<621,1> freq;
freq.ones();
cout << 2.0 * arma::datum::pi * freq << endl;
return 0;
}
ところで、 matlab2arma() 関数 (質問へのコメントに記載) のグーグル検索は、サードパーティによるハッキングを示しています。固定サイズの行列と、手動のメモリ管理を伴うあらゆる種類のハックを混在させると、問題が発生する可能性があります。自分が何をしているのかわからない場合は、Armadillo の内部ポインタを変更しないでください。