我将在EXCEL或MATLAB中将数组转换为[1 2 6 12 13 15 20 8 30 31]到[1 2 3 4 5 6 7 8 9 10]范围。有什么功能吗?有没有建议将这种类型的任意范围转换为确定的范围?
答案 0 :(得分:0)
在Matlab中:
v = [1 2 6 12 13 15 20 8 30 31];
v_index = 1:length(v);
答案 1 :(得分:0)
在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
希望有所帮助!