简体   繁体   English

如何将长度为 m 的 Integer 数组转换为 Java 中长度为 n 的数组 [已解决]

[英]How can I convert an Integer array with length m to an array with length n in Java [SOLVED]

Hey want to convert an Integer array from a given length (bigger than 852) to an other Integer array of a lengh of 852.嘿想将 Integer 数组从给定长度(大于 852)转换为另一个长度为 852 的 Integer 数组。

That's because I want to display m values to 852 pixels.那是因为我想将 m 值显示为 852 像素。

The logic way is just to devide the ratio betwwen those two:逻辑方法只是将这两者之间的比率分开:

Let's say the array I want to compress has 2556 values.假设我要压缩的数组有 2556 个值。

The ratio between that is 2556/852 = 3, so I could jsut grab the 3 values and make the average.这之间的比率是 2556/852 = 3,所以我可以抓住 3 个值并取平均值。

The problem is that not allways the ratio is an integer, for example 2756/852 is 3.2347...问题是比率并非总是 integer,例如 2756/852 是 3.2347...

Can anyone help me?谁能帮我?

Thanks!谢谢!

I actually solved, I manage to create a function int Java that does exacly what I want.我实际上解决了,我设法创建了一个 function int Java,它完全符合我的要求。 You just need to import import java.util.Arrays;您只需要导入import java.util.Arrays;

The function is compressArr(arrayToCompress, newArrayLength) function 是compressArr(arrayToCompress, newArrayLength)

Returns a float array.返回一个浮点数组。

public static float[] compressArr(float[] arr1, int l){
float[] arr2 = new float[l];
for(int i = 0; i<l;i++){
arr2[i] = average(Arrays.copyOfRange(arr1,P1(i,arr1.length,l),P2(i,arr1.length,l)+1));
}
  return arr2;
}

public static int P1(int x,int n, int d){
  float r = ((float)n)/d;
  int b = 0;
  int p = 0;
for(int i = 0; i<x ; i++){
p = (int)(x*r-b);
b*=p;
}
return(p);
}

public static int P2(int x,int n, int d){
  x+=1;
  float r = ((float)n)/d;
  int b = 0;
  int p = 0;
for(int i = 0; i<x ; i++){
p = (int)(x*r-b);
b*=p;
}
return(p-1);
}

static float average(float a[]) {
  int n = a.length;
  float sum = 0;
  for (int i = 0; i < n; i++)
  sum += a[i];
  return sum / n;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 从长度为 n 的字符数组生成长度为 m 的所有子序列,其中 n &gt;= m 在 Java 语言中 - Generate all subsequences of length m from a character array of length n where n >= m in Java language 如何在Java中将字符串数组转换为长度数组 - How to convert String array to length array in java 如何在数组中查找整数的长度 - How to find the length of an integer in an array 如何在 Java 中创建没有指定长度的字符数组? - How can I create a character array in Java without a specified length? 如何在 Java 中初始化长度为 0 的字符串数组? - How can I initialize a String array with length 0 in Java? Java:在给定数组 integer 和数组长度的情况下,递归地在数组中搜索 integer - Java: Recursively search an array for an integer given an array, integer, and array length 如何在Java中定义具有长度和某些元素值的数组? - How can I define an array with length and some of elements' value in Java? 给定一个整数数组(长度为 n),使用 Java 中的递归查找并返回输入数组的所有子集 - Given an integer array (of length n), find and return all the subsets of input array using recursion in Java 在Java中的整数数组中找到模式长度? - finding the pattern length in an integer array in java? Java整数到固定长度的字节数组 - Java integer to fixed length byte array
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM