将由唯一值相关的列映射到另一个矩阵中的所有值

时间:2016-02-15 05:48:16

标签: matlab matrix unique

我有一个钻孔位置矩阵([X Y])。我已经提取了唯一的位置([Xuq Yuq]),然后使用griddata为每个位置插入一个高程(Z)。现在我想在原始矩阵中创建一个列,并将相关的Z分配回每个X& Y位置。这可能没有for循环吗?

1 个答案:

答案 0 :(得分:1)

如果您通过执行以下操作创建了独特的位置和高程:

XY = unique(data(:,[1 2]),'rows');
Z = f(XY); % some function of XY(:,1) and XY(:,2)

然后您需要做的就是保持第三个输出值不唯一,并使用它来适当地映射Z

[XY,~,ic] = unique(data(:,[1 2]),'rows');
Z = f(XY);
data = [data Z(ic)]; % append the mapped column