次の MATLAB コード行があります。
a/b
私はこれらの入力を使用しています:
a = [1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9]
b = ones(25, 18)
これが結果です (1x25 行列):
[5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
MATLAB は何をしているのですか? この動作を Python で再現しようとしていmrdivide
ますが、MATLAB のドキュメントは役に立ちませんでした。5 はどこから来て、残りの値はなぜ 0 なのですか?
他の入力でこれを試してみたところ、同様の結果が得られました。通常は、最初の要素が異なり、行列の残りがゼロで埋められています。Python で を使用するlinalg.lstsq(b.T,a.T)
と、返される最初の行列のすべての値 (つまり、特異な行列ではない) は 0.2 です。私はすでにPythonで正しい除算を試みましたが、間違った次元で何かが完全に外れています。
最小二乗近似とは何かを理解しています。何mrdivide
が行われているかを知る必要があるだけです。