0

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

4

2 回答 2

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

希望有帮助!

于 2012-10-31T09:03:44.663 回答
0

在 Matlab 中:

v = [1 2 6 12 13 15 20 8 30 31];
v_index = 1:length(v);
于 2012-10-30T23:52:04.243 回答