matlab - 重新标记矩阵,用 1..N 替换所有唯一数字

标签 matlab image-processing image-segmentation

我正在使用 MATLAB。我有一个包含 N 元素的矩阵,其中填充了数字 [1; N],但它们之间只有K个唯一数(K远小于N)。什么是有效 重新标记矩阵以使其仅包含数字的方法[1; K]?相等的数应该变成相等的,不相等的应该变成不相等的。

N = 10K = 4 的示例:

[1 4 8 9 4 1 8 9 4 1] -> [1 2 3 4 2 1 3 4 2 1]
  • N ~ 1 000 000
  • K ~ 10 000

最佳答案

使用unique的第三个输出参数:

a=[1 4 8 9 4 1 8 9 4 1];
[~, ~, b] = unique(a)
b =
     1     2     3     4     2     1     3     4     2     1

关于matlab - 重新标记矩阵,用 1..N 替换所有唯一数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13914414/

相关文章:

arrays - 提取按另一个向量中的索引分组的向量中元素频率的快速方法?

javascript - 使用 Javascript 在浏览器中编辑图像,然后将图像保存在 Google App Engine 中

python - 多级图像阈值

c++ - opencv BGR2GRAY 和 Pillow 转换函数之间的区别

python - 使用 python 从不良闪电图像中分割文本

c++ - OpenCV 中 meanShiftFiltering 和 meanShiftSegmentation 的区别

tensorflow - 使用 Google 的 DEEPLAB V3+ 获取图像分割中每个语义类别的类别概率分数

json - jq可以跨文件执行聚合

Matlab Mex文件编译

visual-studio-2010 - matlab与visual studio的集成