【问题标题】:Filling a matrix with rows用行填充矩阵
【发布时间】:2017-10-29 15:28:19
【问题描述】:

我正在尝试用行填充矩阵。我正在实时读取数据,我需要用前 256 个值填充矩阵,然后用接下来的 256 个值等...这是我目前所拥有的,但是当我在控制台中打印它时,它会显示给我对象,而不是矩阵,所以我不知道我是否做得对。

            transformed[0] = scaleEMG(transformed[0]);
            transformed[1] = scaleEDA(transformed[1]);
            transformed[2] = scaleAccelerometer(transformed[2]);
            transformed[3] = scaleAccelerometer(transformed[3]);
            transformed[4] = scaleAccelerometer(transformed[4]);


            double[][] buff = new double[256][6];

            for(int f=0;f<256;f++){
                    buff[f] = transformed;
            }

            Log.d("this is my array", "arr: " + Arrays.toString(buff));

transformed 给我一个数组一个数组的传感器读数,像这样:

我只需要将这些数据分组到一个 256x6 的数组中。然后用接下来的 256 个值更新这个数组(或另一个数组),依此类推。

编辑:我将toString 更改为deepToString,并定义了我的全局变量并更新了如下buff:

public static int f = 0;
public static double[][] buff = new double[256][6];

if(f<256){buff[f++]=transformed;}

但我总是得到相同的矩阵,我该如何解决这个问题?正如我所说,打印的第一个矩阵应该是变换后的前 256 个值,第二个矩阵应该是变换后的 256 个值,等等。

【问题讨论】:

  • “当我在控制台中打印时它会显示对象”是什么意思? edit您的问题以显示一些示例输出。
  • 问题是因为您当前正在将相同的数组分配给您的内部 2d 数组 buff[f] = transformed ,您到底期望什么,请提供更多信息
  • 如果我进行打印转换,它会给我一个包含传感器读数的数组。我每秒读取 1000 个样本,它会打印每个样本。我说清楚了吗?我 buff 我需要存储前 256 个样本,所以转换后的前 256 个读数,然后是下一个 256,依此类推..
  • 许多事情仍然很清楚,例如您如何获取数据以及何时何地获取数据,但简单的事情是,您应该执行类似buff[f] = first 1d array where f-0 then buff[f] = second 1d array where f-1等等。我感觉到您可能需要保留一个全局变量并像buff[f++]=transformed 一样使用它,然后当transformed 得到下一个值时,buff[f++]=transformed
  • 我想我明白你在说什么,但我不知道该怎么做。我应该将 buff[f] 更改为 buff[f++]?

标签: java android arrays matrix rows


【解决方案1】:

您需要使用Arrays#deepToString 而不是Arrays.toString 来打印二维数组

Log.d("this is my array", "arr: " + Arrays.deepToString(buff));

因为它就像一个包含对象的对象

数组#deepToString

返回一个字符串表示的“深层内容” 指定的数组。如果数组包含其他数组作为元素,则 字符串表示包含它们的内容等等。 This method is designed for converting multidimensional arrays to strings.

【讨论】:

  • 谢谢,我得看看我得到了什么
  • 我仍然没有得到我需要的东西,我更新了问题让你更好地理解
  • @user8559076 仍然不清楚您如何获得transformed 数组,但正如我所说,您需要将您的数组分配给buff 的第一个索引,第二次分配给buff 的第二个index 和确保每次获得一个新的transformed 数组而不是更改已创建数组的值
  • Transformed 正在实时读取数据,每秒 1000 个样本,因此它会打印我在控制台中读取的每个样本。这就是它给我的原因。我正在这样做,但我不知道如何保证我不会每次都替换 transform 的值。我怎样才能做到这一点?我的意思是,transformed 只是一个一维数组,我只需要将这些一维数组中的 256 个分组为 buff
  • @user8559076 仅当您通过更改其值将相同的数组存储在二维数组中时才会发生这种情况
猜你喜欢
  • 2016-10-28
  • 1970-01-01
  • 1970-01-01
  • 2018-09-20
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 2018-05-06
相关资源
最近更新 更多