もっと分かりやすいように更新: 私は自分の本と多くのサイトの両方を調べましたが、私は単に正しいキーワードを検索しなかったと確信しています。逆行列とベクトルに関数を適用しようとしています
私は、コードに表示される行列の時間ベクトル(完全な行列の乗算)を乗算する関数を作成しました。これまでのところ、それはうまく機能しています。私は私の入力関数とその引数:
m<- matrix(1:9, nrow= 3, ncol=3)
f <- function(x,y,z) {(as.vector(y)%*%x%*%as.vector(y))*z}
f(m,rep(1,3),2)
この出力: [1] [1] 90
xおよびyは一定のままであるが、Zが変化するであろう。
だから私は複数の出力を得るためにベクトルを使いたい。
z<- as.vector(1,2,3)
私はそうのような関数を適用しようとしました:
apply (c(rep(m,3),rep(1,3),rep(2,3)),1,f)
しかし、それはエラーを生成します。
エラー:予期しない「」 『((REP(M、3)、適用』
だから私の質問は、あなたが行うことができます乗算を行列して、プロットするためのベクトルの各要素にその出力を乗算する方法であるに?
また、私は1つの答えは、単にその結果時間スカラを乗算したが、我々はそれが解決策として利用できないと仮定することができ、別の後、第1の行列の乗算を実行し、関数を作成することであることを認識しています。
事前にお手数をおかけします。
あなたが望むのは不明です。「出力のベクトル」が必要ですが、入力のどの部分が変わるべきですか?あなたのエラーは、 'c(rep(...')には 'c'が欠けているだけですが、入力の一部がばかばかば' sapply'を使いたいのですが、いくつかの変数がある場合は 'mapply'を使いたいかもしれません。 –
ありがとう、mappply働いた。 – user1181337