让我们说 - 我有两个向量:
a numbers=[14 14 2 25 25 14 14 14 2 23 23 23]:
b frequency_of_the_numbers_above=[2 1 2 3 1 3];
c new_numbers=[14 14 14 14 14 2 2 2 2 25 25 25 25 25 25 25 14 14 14 14 14 2 2 2 2 23 23 23 23 ];
b描述了向量a中的值出现的频率。例如:数字14两次,这就是为什么b中的第一个数字是2,向量中的数字2一次,这就是为什么向量b中的第二个数字是1等等。 / p>
我现在想要的是将矢量b调整为矢量c,以便结果看起来像:
new_numbers[14 14 14 14 14 2 2 2 2 25 25 25 25 25 25 25 14 14 14 14 14 2 2 2 2 23 23 23 23 ];
frequency_numbers_for_new_numbers=[2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 1 1 1 1 3 3 3 3];
答案 0 :(得分:0)
您的问题似乎与您发布的向量中的内容不符。 b似乎是一个给定数字中有多少出现在一个行中。因为有5 14个。你的结果似乎是b中重复的数字c中那个元素的数量是你想要的吗? a和c是否始终包含相同顺序的相同数字?
好吧,我会编写代码来执行我所描述的(在java中)
int index = 0;
int currentVal = c[0];
int[] result = new int[c.length];
for(int i = 0; i < result.length; i++) {
if(c[i] != currentVal) {
index++; //if the number changed go to the next index for b
currentVal = c[i]; //update the currentVal to the new value
}
result[i] = b[index]; //copy the value from b into the result vector
}