在Java中以2D数组实时存储数据
我在数组中存储实时数据时遇到问题 我有一个1D阵列,可以实时读取数据,这很好,它可以像这样打印我的数据:在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个样本获取一个新的数组,以此类推。。但我没能
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个已转换数组创建一个新数组。或者我不知道我是否理解不对,你能告诉我怎么做吗?你需要为每组读数创建一个新的转换,将数据加载到其中,然后在给定索引处设置缓冲区以指向新数组,然后对每个项重复此过程