これは、MATLABの新しいautomatic dimension broadcastingのおかげで混乱したものの一部です。
まず、./
演算子は、要素の演算であることに注意してください。
R2016bより前のMATLABのバージョンでは、この演算子を使用すると、2つの入力が正確にはの同じ次元になる必要があります。
[1 2] ./ rand(4)
マトリックス寸法が同意しなければなりません。
あなたは(あなたがあなたの第二の例を示すてきたように)、マトリクス状に複数の列に、この要素ごとの操作を適用したい場合は、ルールがあることであるbsxfun
bsxfun(@rdivide, [1 2], [1 2; 2 3]);
を使用していました2つの入力の非シングルトン次元が一致しなければならない。
2つの入力配列の非単一次元は、互いに一致する必要があります。
したがって、上記の例では、最初の配列は1
の第1の次元と2
の第2の次元を持ちます。第2の入力は、2
の第1の次元と2
の第2の次元とを有するので、この基準が満たされる。
R2016bでは、MATLABはと同じ効果をbsxfun
とした寸法の自動ブロードキャストを導入しました。これは今やオペレータに組み込まれています。 同じ基準が第一の入力の大きさは、[2 x 2]
と第二の大きさは[3 x 2]
ある
[1 2; 2 3] ./ [1 2; 2 3; 3 4]
に失敗あなたの例では動作を
を行う必要があります。この場合、最初の入力ディメンションは一致しないため、操作は失敗します。
[ドキュメントを読む](https://www.mathworks.com/help/matlab/ref/rdivide.html)しましたか? – excaza
行列の行列分割または要素ごとの行列の分割が必要ですか?行列の除算に '/'を使用したい場合は、ドットなしで –
あなたのタイトルは間違いです。私はあなたが_lelement-wise division_によって_rightを代わりに置き換えることを提案します。 –