我有一个n x 3矩阵E
,很多方法都存储在一个d x 3矩阵M
和一个协方差矩阵中,比如说身份。
我想为M
中的每个点计算mvnpdf(E[i,:],M(k,:),cov)
。
基本上,当我运行mvnpdf(E,M(k,:),cov)
时,我会得到一个向量
[mvnpdf(E(1,:),M(k,:),cov)
mvnpdf(E(2,:),M(k,:),cov) etc]
我想捕捉这些向量以得到如下矩阵:
[mvnpdf(E,M(1,:),cov), mvnpdf(E,M(2,:),cov), etc]
没有for循环有没有办法做到这一点?
答案 0 :(得分:1)
这可以在我的机器上运行,但看看它是不是你的目标:
Cov = eye(3);
C = arrayfun(@(x,y,z) mvnpdf(E,[x y z],Cov), M(1,:), M(2,:), M(3,:),'uni',false);
A = [C{:}]
注意:请考虑不要将cov
用作变量,因为它是MATLAB函数。
编辑:我的原始输出M
破坏了您的输入M
。请再次使用原始数据!