2017-11-20 9 views
2
A = 1:5 
B = 11:15 

私はしかし、私は(可能な場合は、ループを経由せずに)ABになりたいA %*% Bは、AB = [205] i.e. 1*11+2*12+3*13+4*14+5*15 =205
を与えるだろう知っている= (1*11)^2+(2*12)^2+(3*13)^2+(4*14)+(5*15)^2=10979では、以下の方法で2つのベクトルまたは行列にベクトルを乗算することは可能ですか?

フォローアップ:@により示唆されるように、これは上記の問題sum((A*B)^2)を解決Dasonと@nicola。

今、私はこの作品見つけ遊ん後AがA =matrix(1:10,2,5) すなわち行列である場合には何をすべきか:rowSums((A %*% diag(B))^2)

+7

おそらく 'sum((A * B)^ 2)'ですか? – nicola

+4

メモ...あなたのデータがはっきりとはっきりしていないことを書くために使用している表記法はRではありません。Rの質問をする場合は、R. – Dason

+0

から簡単に再現できるように努力する必要があります合意した私は通常、質問をするときにそれを行いますが、私はこの質問のためにその部分を欠いていました。 – user2797174

答えて

5

それが直接それがチェーンに十分に簡単だん演算子/関数ではありませんがあなたが望むものをループせずに得るために一緒に2,3人一緒に。

sum((A*B)^2) 
+0

それは素晴らしいです!ありがとうございました! – user2797174

+0

Aが行列の場合、A =行列(1:10,2,5)@Dason – user2797174

+0

の場合に変更する必要があるのは、Bが実際にどのように見え、その状況で何をしたいかによって異なります。あなたの質問は、AとBが同じサイズでない場合に、どのように拡大したいと思うかについて十分な詳細を与えていません。 – Dason

関連する問題