BUGSおよびJAGSでのベクトル乗算


9

Rでは、c(3,1,0)* c(2,0,1)== c(6,0,0)です。これは内積ではなく、外積でもありません。最初に、この製品の名前は何ですか?次に、WinBUGS、OpenBUGS、JAGSで動作しますか?


2
これは単なる要素ごとの乗算です。WinBUGS、OpenBUGS、JAGSのいずれで動作するかはわかりません。
通常の

回答:


3

JAGSとは異なり、WinBUGSとOpenBUGSはこの形式のベクトル化を行いません。上記のように、ループを記述し、各要素を「手動」で計算する必要があります。


4

Martyn Plummerは、これはJAGSで実装されていると指摘しましたが、マニュアルを読んだときに見落としました。5章から:

スカラー引数を取るスカラー関数は自動的にベクトル化されます。また、引数が適合次元を持つ配列、またはスカラーの場合にも呼び出すことができます。したがって、たとえば、スカラーc マトリックスに追加できます を使用して

B <- A + c

より冗長な形式の代わりに

D <- dim(A)
for (i in 1:D[1])
  for (j in 1:D[2]) {
    B[i,j] <- A[i,j] + c
  }
}

2

要素ごとの乗算を行うには、これらの言語でforループを作成するだけでよいのです。WinBUGSでforループを問題なく使用しました。


この返信アドレスはどのような質問ですか?ここでは関係がないようです。
whuber

@whubber、なぜ?それは完全に関連しています。わかりやすくするために、投稿を少し変更しました。
好奇心旺盛な

うん、forループは私がこれまでやってきたことです。ベクトル化されたバージョンが可能かどうか疑問に思いました。
Jack Tanner、2012年

:私はぎざぎざに機能リクエスト送信したsourceforge.net/tracker/...
ジャック・タナー

ありがとう、トーマス。今私は関係を理解し​​ています:あなたは述べられたように質問に答えていませんが、あなたは回避策を提供しています。
whuber

2

ちなみに、2つの等しい長さのベクトルの要素ごとの乗算は、アダマール積(別名シューア積)と呼ばれます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.