Matlab 一种有效的矢量拼接方法
我有一个nx3矩阵Matlab 一种有效的矢量拼接方法,matlab,matrix,Matlab,Matrix,我有一个nx3矩阵E,一个dx3矩阵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] 我想对这些向量进行cat运算,得到如下矩阵: [mvnpdf(E,M(1,:),cov), mvnpdf(E,M(2,:),cov), etc] 在没有for循环
E
,一个dx3矩阵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]
我想对这些向量进行cat运算,得到如下矩阵:
[mvnpdf(E,M(1,:),cov), mvnpdf(E,M(2,:),cov), etc]
在没有for循环的情况下,有什么方法可以做到这一点吗?这在我的机器上是可行的,但请查看是否是您想要的:
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函数。< /P>
编辑:我的原始输出M将您的输入M。请使用原始数据重试 这在我的机器上起作用,但看看是否是您想要的:
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函数。< /P>
编辑:我的原始输出M将您的输入M。请使用原始数据重试