在一个矩阵中运行,但对SOURCE矩阵进行了修改

时间:2020-08-05 13:12:25

标签: arrays numpy matrix

这是我的问题:我有一个n维矩阵(numpy数组),其长轴包含我需要的数据。

我需要归一化矩阵的每个条目。例如,对于这样的矩阵:

public interface MyCallback {
    public void updateMyText(int index, long time);
}
   public Timer(int index, long startTimeMilliseconds) {
        this.index = index;
        this.time = startTimeMilliseconds;
        mTimeLeftInMillis = startTimeMilliseconds;
        startTime = startTimeMilliseconds;
    }



    public void startTimer() {
        mCountDownTimer = new CountDownTimer(mTimeLeftInMillis, 1000) {
            @Override
            public void onTick(long millisUntilFinished) {
                mTimeLeftInMillis = millisUntilFinished;
                updateCountDownText();
            }
            @Override
            public void onFinish() {
                mTimerRunning = false;
            }
        }.start();
        mTimerRunning = true;
    }

    public void resetTimer() {
        mCountDownTimer.cancel();
        mTimerRunning = false;
        mTimeLeftInMillis = startTime;
        timeLeftFormatted = formattedTime(startTime);
        changeText(index-1);
    }

    public void updateCountDownText() {
        //MainActivity.timerList.get(getIndex()-1).setTime(mTimeLeftInMillis);
        //MainActivity.adapter.notifyDataSetChanged();
        if(myCallback != null) {
            myCallback.updateMyText(getIndex(), mTimeLeftInMillis);
        }
    }

我需要分别对每一列进行标准化。

在我的代码中,我使用3维数组,因此看起来像这样:

[1 2 3]
[2 3 4]
[7 8 9]
[3 2 1]

我的原始数据包含在to_plot_OFF = FFT_OFF for row, element in enumerate(to_plot_OFF): for col, element_c in enumerate(element): to_plot_OFF[row][col] = element_c/np.max(abs(element_c[10:250])) to_plot_OFF = np.transpose(to_plot_OFF) 中(我不希望对其进行修改),而处理后的数据包含在FFT_OFF中。

我使用第一行来获得所需的矩阵形状。循环分别对每个数据列进行标准化。

问题是,在循环结束时,两个矩阵(to_plot_OFFto_plot_OFF)都是相同的(换位除外)!更糟糕的是,矩阵FFT_OFF在循环过程中以某种方式被修改,并且其条目被标准化。

我不明白这里发生了什么。如果我尝试举一个简单的例子:

FFT_OFF

它不会修改变量a。

任何人都可以对这里发生的事情提供一些见解吗?我怀疑这与第一行有关,我在其中写a = np.array([1,2,3]) b = a b = b/np.max(b) 。但是,这行难道不应该为矩阵to_plot_OFF = FFT_OFF在内存中分配一个新块,而不是仅仅声明一个指向to_plot_OFF的相同内存地址的指针吗?

任何帮助将不胜感激。

谢谢!

0 个答案:

没有答案