【问题标题】:two dimensional unique values in MatlabMatlab中的二维唯一值
【发布时间】:2015-08-31 01:34:07
【问题描述】:

我有两个向量,一个存储一组图像的宽度尺寸,另一个存储一组图像的高度。

我想将这些值用作二维向量 [width height] 并将它们存储在矩阵中。例如,第一行保留宽度,第二行保留高度。

是否可以使用matlab中的unique()函数返回二维唯一值?我的意思是,值可以在一个维度上重复,但两个维度不能与另一个向量相同?

如何在 Matlab 中做到这一点?

一个例子:给定以下矩阵,每一列都有一个二维向量。我想要二维唯一向量。这些值可以在一个维度上重复,但不能在两个维度上重复。

我有什么:

[1,2,3,1;
 4,5,6,4]

我想作为输出:

[1,2,3;
 4,5,6]

【问题讨论】:

  • 如果我理解你的问题,是的。可以使用uniquerows 选项
  • 给我们一些两行矩阵和想要的最后一个,因为我不太理解。

标签: arrays matlab


【解决方案1】:

请参阅unique 的文档。

假设widthsheights 是列向量,

[C,ia,ic] = unique([widths, heights],'rows')

相反,如果widthsheights 是行向量,

[C,ia,ic] = unique([widths; heights].','rows')

【讨论】:

  • 此解决方案不起作用。假设我有矩阵[1,2,3,1;4,5,6,4],每列包含(高度,宽度)的二维向量。使用您提出的解决方案,向量 (1,4) 将出现两次。
  • 因为它正在寻找唯一的行,所以你必须转置你的矩阵。 unique([1,2,3,1;4,5,6,4]', 'rows') 会起作用。
猜你喜欢
  • 1970-01-01
  • 2014-08-26
  • 2016-02-27
  • 2022-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
相关资源
最近更新 更多