2
私は、加算演算子の予期しない動作を見つけました。何(1×n)プラス(n×1)の演算を呼び出すのですか?
a=[1 2 3];
b=[5; 7; 11];
a+b
この動作は、おそらくマニュアルにAdd a Vector to a Matrix例に該当
ans =
6 7 8 % a(1)+b(1) a(1)+b(2) a(1)+b(3)
8 9 10 % a(2)+b(1) a(2)+b(2) a(2)+b(3)
12 13 14 % a(3)+b(1) a(3)+b(2) a(3)+b(3)
を生成します。
配列Aを作成し、列ベクトルを追加します。ベクターは、私の例では、
b
として扱うことができない、がベクター内の各 要素はA.
の行に追加されるように、それは、Aと同じサイズの行列であるかのように扱わ ありますa
と同じサイズ。両方のベクターを複製する必要があります。
この動作を他の人に説明しているときに、この動作を呼び出すことはできますか?Matrix Additionの定義はありません。 Vector additionの定義も異なります。私が思いつくことができる最高ののは、 "デカルト積の要素の合計"でした。
bsxfunは、この動作が必要な場合にはどこに見えるのでしょうか、それが存在するかどうかわかりませんでした。しかし、あなたが行動を見つけてそれを説明しようとしているかどうかを見るのは、直感的な場所ではありません。 :P – Cecilia
暗黙の拡張とも呼ばれます... Mathworksのブログ記事はhttps://blogs.mathworks.com/loren/2016/11/10/more_thoughts_about_implicit_expansion/ – beaker
です。こちらはオリジナルです。 http://blogs.mathworks.com/loren/2016/10/24/matlab-arithmetic-expands-in-r2016b/ – beaker