如何将任意值范围更改为范围值?

时间:2012-10-30 23:39:35

标签: excel matlab range

我将在EXCEL或MATLAB中将数组转换为[1 2 6 12 13 15 20 8 30 31]到[1 2 3 4 5 6 7 8 9 10]范围。有什么功能吗?有没有建议将这种类型的任意范围转换为确定的范围?

2 个答案:

答案 0 :(得分:0)

在Matlab中:

v = [1 2 6 12 13 15 20 8 30 31];
v_index = 1:length(v);

答案 1 :(得分:0)

MATLAB的解决方案

在MATLAB中,unique可以做到这一点。例如:

A = [1 1 1 1 4 4 5 3 3 6 6 6 6 8]
[C, ia, ic] = unique(A);

现在ic包含您要查找的值:

ic = 
    1    1    1    1    3    3    4    2    2    5    5    5    5    6

此外,如果您愿意,可以将ic重新映射到新订单。例如,这是一个类似于建议的新订单:

new_order = [1 3 2 4 6 5];
ic_new = new_order(ic);

产生:

ic_new = 
    1    1    1    1    2    2    4    3    3    6    6    6    6    5

希望有所帮助!