我找不到执行以下任务的matlab函数/代码
我有一个向量C = [1 1 2 2 2 3 3 4]
我需要得到的向量Y = [1 2 1 2 3 1 2 1]
答案 0 :(得分:1)
您可以创建如下函数:
C = [1 1 2 2 2 3 3 4]
Y = zeros(1,length(C))
helper = zeros(1,max(C)) % stores the count for each value
for i=1:length(C)
helper(C(i)) = helper(C(i))+1; %increases the count for the value in C(i)
Y(i) = helper(C(i));
end
希望有所帮助
答案 1 :(得分:0)
试试这个,如果你想要一个单行,这将有效......
Y = sum(cumsum(meshgrid(C)==meshgrid(C)',2).*(meshgrid(C)==meshgrid(C)').*eye(length(A)),1);
不是最漂亮的,但它会起作用(你总是可以把它分开来使它更清晰)