私の質問は簡単です: 列 (または行) の合計が 1 になるように、c で 2 次元 double 配列を正規化する最も効率的な方法は何ですか。以下は、私がやりたいことを説明する簡単な例です。それが重要な場合は、行または列を正規化するために配列を再形成しても問題ありません。また、外部の C 線形代数ライブラリを使用することもできます。どこから始めればよいかわかりません。事前に助けてくれてありがとう!
void normalize(double** array, int nrow) {
int i;
double sum = 0;
for(i = 0; i < nrow; i++) {
sum += array[i][0];
}
for(i = 0; i < nrow; i++) {
array[i][0] /= sum;
}
}
ところで、これは隠れマルコフ モデルの動的計画法アルゴリズムの一部であり、何度も呼び出されます。ですから、この部分をできるだけ効率的にしたいと考えています。