簡體   English   中英

Matlab和Python中的Size函數

[英]Size function in Matlab and Python

我正在嘗試將此MATLAB代碼轉換為Python。 這是代碼:

function snr_est = estimate_snr(R,r_m,x)

         [L N]=size(R);           % L number of bands (channels)
                                  % N number of pixels (Lines x Columns) 
         [p N]=size(x);           % p number of endmembers (reduced dimension)

         P_y = sum(R(:).^2)/N;
         P_x = sum(x(:).^2)/N + r_m'*r_m;
         snr_est = 10*log10( (P_x - p/L*P_y)/(P_y- P_x) );

return;

我的問題與大小方法有關。 對於使用MATLAB代碼中的size而言,MATLAB表示“當A為矩陣時,它返回行數和列數”。 我想在Python中做同樣的事情。 我知道a.shape也返回數組的尺寸。 然后可以使用MATLAB代碼在此函數中要求它們的相同方式來訪問它們嗎?

MATLAB的size函數和numpy的shape屬性都以相同的方式輸出尺寸。

例如,如果A是MATLAB中的3D矩陣,稱為3行,4列,深度為5,則size(A)將返回[3, 4, 5]

同樣,在python中,如果我有一個具有相同尺寸的3D numpy數組B ,則B.shape將返回(3, 4, 5)

在上面提供的示例中, R是尺寸為L x N的矩陣,而x是尺寸為px N的矩陣。 假設您傳遞給python函數的矩陣(二維numpy數組)相同(即R.shape=(L,N)x.shape=(p,N) ,則MATLAB的size和numpy的shape將表現相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM