Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中以2D数组实时存储数据_Java_Arrays_Real Time - Fatal编程技术网

在Java中以2D数组实时存储数据

在Java中以2D数组实时存储数据,java,arrays,real-time,Java,Arrays,Real Time,我在数组中存储实时数据时遇到问题 我有一个1D阵列,可以实时读取数据,这很好,它可以像这样打印我的数据: D/这是我的数组:arr:=[-1.43,-3.5916,2.71,4.42,-4.4,0.0] 这个数据代表一个样本,我每秒读取1000个样本,所以如果我打印这个数组,它会显示每次读取的数据,我是说每秒读取1000个像图片一样的数组(数据不同) 现在,我需要处理这些数据,所以我需要将前256个样本存储在一个2D数组中,处理该数组,然后用下256个样本获取一个新的数组,以此类推。。但我没能

我在数组中存储实时数据时遇到问题

我有一个1D阵列,可以实时读取数据,这很好,它可以像这样打印我的数据:

D/这是我的数组:arr:=[-1.43,-3.5916,2.71,4.42,-4.4,0.0]
这个数据代表一个样本,我每秒读取1000个样本,所以如果我打印这个数组,它会显示每次读取的数据,我是说每秒读取1000个像图片一样的数组(数据不同)

现在,我需要处理这些数据,所以我需要将前256个样本存储在一个2D数组中,处理该数组,然后用下256个样本获取一个新的数组,以此类推。。但我没能做到这一点

已转换
如果我的1D数组逐个样本显示我。
buff
是我想要存储数据的矩阵

这就是我如何转换的,它首先是短[],然后我将它转换为双精度:

short[] yaxis = msg.getData().getShortArray(BiopluxService.KEY_FRAME_DATA);
double[] transformed = new double[yaxis.length];
for (int j = 0; j < yaxis.length; j++) {
    transformed[j] = (double) yaxis[j];
}
short[]yaxis=msg.getData().getShortArray(BiopluxService.KEY\u FRAME\u DATA);
double[]transformed=新的double[yaxis.length];
对于(int j=0;j
这就是我到目前为止所做的:

double[][] buff = new double[256][6];
for (int f = 0; f < 256; f++) {
    buff[f] = transformed;
}
Log.d("this is my array", "arr: " + Arrays.deepToString(buff));
double[]buff=新的双精度[256][6];
用于(int f=0;f<256;f++){
buff[f]=已转换;
}
Log.d(“这是我的数组”,“arr:+Arrays.deepToString(buff));
但是我的buff数组有相同的值

为什么数组不包含不同的值 如果运行以下代码,则将所有行设置为指向同一数组:

public class ClassNameHere {
   public static void main(String[] args) {
      double[][] d = new double[5][];

      double[] row = {1,2,3};
      for (int i = 0; i < 5; i++) {
         d[i] = row;
      }
   }
}
此处为公共类classname{
公共静态void main(字符串[]args){
双精度[]d=新双精度[5][];
双[]行={1,2,3};
对于(int i=0;i<5;i++){
d[i]=世界其他地区;
}
}
}
通过这个工具,您可以看到在代码的末尾,所有的行都指向完全相同的数组,所以它们都是相等的

如何修复 您希望为每次转换创建一个新数组,然后加载到该数组中,因此所有行都是不同的数组,允许它们具有不同的值。

为什么数组不包含不同的值 如果运行以下代码,则将所有行设置为指向同一数组:

public class ClassNameHere {
   public static void main(String[] args) {
      double[][] d = new double[5][];

      double[] row = {1,2,3};
      for (int i = 0; i < 5; i++) {
         d[i] = row;
      }
   }
}
此处为公共类classname{
公共静态void main(字符串[]args){
双精度[]d=新双精度[5][];
双[]行={1,2,3};
对于(int i=0;i<5;i++){
d[i]=世界其他地区;
}
}
}
通过这个工具,您可以看到在代码的末尾,所有的行都指向完全相同的数组,所以它们都是相等的

如何修复
您希望为每次转换创建一个新数组,然后加载到该数组中,因此所有行都是不同的数组,允许它们具有不同的值。

转换为变量或方法调用,如果是一个值,您将所有行设置为指向同一个数组。我更新了问题,以便您可以看到我是如何转换的。因此,您只需读取一次值,然后将所有行设置为相同的值?如果是这样的话,这将是一个问题转换为一个变量,或一个方法调用,如果是一个值,您将所有行设置为指向同一个数组。我更新了这个问题,以便您可以看到我是如何转换的。所以,您只需读取一次值,然后将所有行设置为相同的值?如果是这样的话,那就是问题所在。好吧,我明白,但我不太确定怎么做。如果我创建不同的数组,如transformed[1]等,有时我会转换超过256个数组,当这种情况发生时,我需要重新启动我的2D数组,并使用下一个256个已转换数组创建一个新数组。或者我不知道我是否做得不对,你能告诉我怎么做吗?你会想为每组读数创建一个新的转换,将数据加载到其中,然后在给定的索引处设置缓冲区以指向你的新数组,然后对每个项重复这个过程。是的,我知道,但我不太确定怎么做。如果我创建不同的数组,如transformed[1]等,有时我会转换超过256个数组,当这种情况发生时,我需要重新启动我的2D数组,并使用下一个256个已转换数组创建一个新数组。或者我不知道我是否理解不对,你能告诉我怎么做吗?你需要为每组读数创建一个新的转换,将数据加载到其中,然后在给定索引处设置缓冲区以指向新数组,然后对每个项重复此过程