[英]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.