使用矩阵评估单元阵列



i具有n个单元z,其中z的(i,j)分量是有序对(s,t)。

i然后有一些矩阵y。基本上z的每个组件都包含一个坐标,我正在尝试找到y的元素。换句话说,我试图通过n矩阵x返回n n矩阵x,其中x(i,j(i,j))= y(s,t)。

这是一个特定的示例:

假设n = 3,

Z = {[1 1] [2 1] [2 2];
     [1 1] [1 3] [3 3];
     [3 2] [3 1] [2 4]}
Y = [1 2 3 5;
     2 3 5 7;
     1 0 4 6]

我正在尝试获得一个3乘3个矩阵,在此示例中,

[1 2 3; 
 1 3 4; 
 0 1 7]

我尝试使用z = squeeze(num2cell(cat(3,a,b),[3,1,2]),1))从其他两个矩阵A和B创建Z,但是我陷入了我的问题。

 fun = @(c) Y(c(1), c(2));
 X = cellfun(fun, Z)
rc = vertcat(Z{:});
X = reshape(Y(sub2ind(size(Y), rc(:,1), rc(:,2))), size(Z));

这可能比 @mbschenkel的答案快,因为它避免了cellfun

最新更新