Matlab 使用包含固定数量唯一值的元素生成向量

Matlab 使用包含固定数量唯一值的元素生成向量,matlab,indexing,unique,sorting,Matlab,Indexing,Unique,Sorting,假设我有一个向量 A= 我需要生成一个新的向量B,它将包含来自Begging向量a的所有这些值,这将导致n个元素的唯一数量(为了本例的目的,假设n=3)。新向量应该是B= 3 5 3 3 2 因为直到向量A的第五个元素,我们有3个唯一的值(3,5,2)。 实际向量要大得多,所以我宁愿需要一个通用的解决方案,最好是避免一个循环。有什么想法吗?提前感谢您可以用它来解决此问题。但是,请务必使用“稳定”选项 A = [3 5 3 3 2

假设我有一个向量 A=

我需要生成一个新的向量B,它将包含来自Begging向量a的所有这些值,这将导致n个元素的唯一数量(为了本例的目的,假设n=3)。新向量应该是B=

 3     5     3     3     2
因为直到向量A的第五个元素,我们有3个唯一的值(3,5,2)。 实际向量要大得多,所以我宁愿需要一个通用的解决方案,最好是避免一个循环。有什么想法吗?提前感谢

您可以用它来解决此问题。但是,请务必使用
“稳定”
选项

A = [3     5     3     3     2     2     4     2     6]; 
n = 3; 

[x, id] = unique(A,'stable'); 

B = A(1:id(3))
这导致

B =

     3     5     3     3     2
你可以用它来解决这个问题。但是,请务必使用
“稳定”
选项

A = [3     5     3     3     2     2     4     2     6]; 
n = 3; 

[x, id] = unique(A,'stable'); 

B = A(1:id(3))
这导致

B =

     3     5     3     3     2
请执行以下操作:

A = [3  5  3  3  2  2  4  2  6];
n = 3;

[b,i] = unique(A,'first');
h = sort(i);
A(1:h(n))
请执行以下操作:

A = [3  5  3  3  2  2  4  2  6];
n = 3;

[b,i] = unique(A,'first');
h = sort(i);
A(1:h(n))

Matlab R2009a中未识别“稳定”选项。@R.Schifini:R2012a中引入了该选项。您的解决方案也适用于早期版本。Matlab R2009a中不认可“稳定”选项。@R.Schifini:R2012a中引入了该选项。您的解决方案也适用于早期版本。