-3
はサイズ800E3x45
とW
のサイズが45x35
です。どのようにしてサイズ800E3x35
の行列を作成できますか?各エントリはX
の行とW
の列の内積ですか?MATLAB:ドットプロダクトのマトリクス
はサイズ800E3x45
とW
のサイズが45x35
です。どのようにしてサイズ800E3x35
の行列を作成できますか?各エントリはX
の行とW
の列の内積ですか?MATLAB:ドットプロダクトのマトリクス
たぶんそれは読んで理解するコードのための最善の方法ではありませんが、あなたは、次の式を使用してベクトル化ビューでそれを行うことができます。
res = cell2mat( arrayfun(@(y) arrayfun(@(x) dot(X(y,:), W(:,x)), 1:size(W,2)), ...
(1:size(X,1))', 'UniformOutput', false))
説明:
dot(X(y,:), W(:x))
を取る必要があります - Xの各行(行番号を意味する)は、Wのすべての列についてドットを取ります(xはWの列です)。arrayfun
(EXTERNは)我々はセル配列になり得るP.S.を使用します私はそこにはより洗練されたソリューションがあると思う、bsxfun
を使用してスムースしかし、これは私が想像することができる最初です。
「M = X * W」と試してください – eyllanesc
あなたの質問はすべて同じですか? –