MATLABには、マトリクス(ofcourse)で動作する微調整アルゴリズムがあります。私はこのアルゴリズムのCコードを生成するためにmatlabコーダーを使用して、期待どおりに動作します。ここ Matlab Coderを使用して生産用アルゴリズムを生成
私はMATLABでx = B/A
- Bのサイズである請求項1 * 500(行×列)
- Aはサイズ10である* 500 を使用関数呼び出しの
- x、結果はサイズ1 * 10
Matlab Coderを使用してこれをCソースに変換したとき。私は、関数定義が上記のサイズと同じパラメータを受け入れることに気付きました。プロトタイプおよびテストの目的のために
void myfunction(const double B[500], const double A[5000], double x[10])
これは大丈夫そうです。しかし、私はこの機能を異なるサイズにも使用することを好みます。たとえば、上記の変数の代わりに100を使用することもできます。私のアルゴリズムで行列の次元の依存性を取り除くにはどうすればよいですか?
さらに、ハードコードされた整数を使用するコード行はほとんどありません。例えば、コードは
if (rankR <= 1.4903363393874656E-8)
// Some internal function calls
else
// Usage of standard sqrt
または
500.0 * fabs(A[0]) * 2.2204460492503131E-16
似ているいずれかは、これらのハードコーディングされた整数が何であるかを説明してもらえますか?これらはMATLABで使用したテストデータから生成されていますか?