在Matlab中为向量的相等行指定相同的数字

在Matlab中为向量的相等行指定相同的数字,matlab,Matlab,考虑Matlab中包含可能重复整数的列向量a 使用unique,我构建了包含A元素的向量B,没有重复 假设我有一个向量C,大小size(B,1)x1 我想请您帮助构造一个大小为size(a,1)x1的向量D,将C的相同元素分配给a的相等元素 让我用一个例子更好地解释一下 clear A=[2; 3; 3; 1; 4; 2; 2; 4; 5; 1]; B=unique(A,'stable'); %B=[2; % 3; % 1; %

考虑Matlab中包含可能重复整数的列向量
a

使用
unique
,我构建了包含
A
元素的向量
B
,没有重复

假设我有一个向量
C
,大小
size(B,1)x1

我想请您帮助构造一个大小为
size(a,1)x1
的向量
D
,将
C
的相同元素分配给
a
的相等元素

让我用一个例子更好地解释一下

clear
A=[2;
   3;
   3;
   1;
   4;
   2;
   2;
   4;
   5;
   1];

B=unique(A,'stable'); 
%B=[2;
%   3;
%   1;
%   4;
%   5] %selected elements

C=[100;
   101;
   102;
   103;
   104]; %size(B,1)x1
然后,开始将
C
的顶部元素分配给
A
的顶部元素,我想

D=[100; %C(1)
   101; %C(2)
   101; %C(2)
   102; %C(3)
   103; %C(4)
   100; %C(1)
   100; %C(1)
   103; %C(4)
   104; %C(5)
   102];%C(3)

我曾尝试使用
unique
发布的索引,但我无法获得所需的输出。有什么帮助吗?

使用数组函数查找B的每个元素的A的索引:

idxs = arrayfun(@(x)find(B==x,1),A);
D=C(idxs)

D =

100
101
101
102
103
100
100
103
104
102

使用数组函数查找B的每个元素的A的索引:

idxs = arrayfun(@(x)find(B==x,1),A);
D=C(idxs)

D =

100
101
101
102
103
100
100
103
104
102

您可以使用第二个输出:


您可以使用第二个输出:


我们不应该点菜,我们不应该点菜。