オプションの引数を持つ関数を作成する必要があります。私はパラメータにデフォルト値を与えるべきであるようです。このアプローチは、オプションのパラメータタイプがdoubleやintegerの場合に非常に有効です。私はデフォルト値を0またはNULLに設定できます。しかし、オプションのパラメータがアルマジロ行列であると仮定します。 NULL行列を定義することはできません。私はこのコードをチェックするが動作しません。Armadilloのオプションのパラメータを持つ関数
mat test(mat& X, mat& Y = zeros(2,2).clear()){
if(Y.empty()){return X;}
return X*Y;
}
デフォルト値のYを空白(または空)の行列に設定したいとしました。私は次にifコマンドを使ってYが空であるかどうかを調べることができます。
ありがとうございます。最初のコードは動作しますが、私がtest(x)を呼び出すとエラーが出ます:Yはデフォルト値なしで見つからない(これは奇妙です)。デフォルト値は明確に定義されています。 2番目のコードは機能しません。関数testの引数YにC++のデフォルト値 'mat()'を解析できません。人々はトピックを重複しているとマークしました。しかし、私が見つけた解決策では、Rcpp NumericMatrixを使用して、Armadillo Matrixに変換する必要があります。 Armadilloのパラメータにデフォルト値を使用することはできませんか? –
これらのいずれかに答えるためにコードを投稿する必要があります。彼らはおそらく新しい質問であるべきです。 –