数据被覆盖。 Android的

时间:2013-08-24 20:33:40

标签: android

我正在将传感器中的数据读入两个静态double [],称为增益和相位。然后,根据用户按下哪个按钮开始从传感器收集数据,我将此数据保存到另一个double []。

前:

    if (What_Button == 1){
        oGain = gain;
        oPhase = phase;
        output.setText("OPEN saved");
    }
    if (What_Button == 2){
        sGain = gain;
        sPhase = phase;
        output.setText("SHORT saved");
    }
    if (What_Button == 3){
        lGain = gain;
        lPhase = phase;
        output.setText("LOAD saved");
    }

然后我希望绘制原始的增益和相位数据。在我这样做之前,我将增益转换为dB,将相位转换为度。

 for (int i=0; i<_steps; i++) {
    phase[i]=Math.toDegrees(phase[i]);
    gain[i]=20*Math.log10(gain[i]);
    }

此绘图工作正常,但在增益和阶段转换后,我保存的数据“lgain”“lphase”等被更改。就好像他们已经立即重新分配给新的Gain和Phase值。我用System.out.pritln命令包围上面的代码,以查看之前和之后的lgain,lphase等值,这肯定是它们被更改的位置。我使用ctrl -f来查找lgain,lphase等的所有实例,并且它们不会在其他任何地方重新分配。任何想法如何解决这个问题?

C

1 个答案:

答案 0 :(得分:1)

您正在通过引用而不是值复制相位数组。

尝试查看Arrays.CopyOf文档以选择复制数组的静态方法。

类似的东西:

oGain = Arrays.copyOf(gain,gain.length);
相关问题