簡體   English   中英

八度音階 nmf_bpas 錯誤:垂直尺寸不匹配(8x1 與 1x400)

[英]octave nmf_bpas error: vertical dimensions mismatch (8x1 vs 1x400)

我在八度音階中遇到非負矩陣分解的問題。 我試圖從 Emg 數據中估計協同效應,但 octave 只能讓我為兩個或更多協同效應做這個,但不能為一個。 我能夠使用以下代碼重現該問題。 nmf_bpas 來自 octave-forge 的線性代數 pkg。

V=rand(4, 20);
k=1; k2=2;
[W, H, Iter, HIS]=nmf_bpas(V,k);

使用此輸入,我收到以下錯誤:

error: vertical dimensions mismatch (4x1 vs 1x20)
error: called from
    nmf_bpas>getStopCriterion at line 373 column 19
    nmf_bpas at line 266 column 26

當我如下定義 k>1 時,它可以工作

[W2, H2, Iter2, HIS2]=nmf_bpas(V,k2);

使用此輸入,它可以正常工作,並且 output 矩陣是 W2 (4x2) 和 H2 (2x20)。

同樣的問題是,當我嘗試使用 nnmf 的其他代碼並為矩陣 (4x1) 和 (1x20) 指定輸入數據 Winit 和 Hinit 時(例如:[W, H] = nmf_pg (V, Winit, Hinit, tol, timelimit ,最大))

在 matlab 中,它與 nnmf function 一起使用。

我會很高興得到幫助

這似乎是nmf_bpas中的一個錯誤。

據我所知,該錯誤位於第 373 行。更改

pGrad = [gradW(gradW<0|W>0); gradH(gradH<0|H>0)];

pGrad = [gradW(gradW<0|W>0); gradH(gradH<0|H>0)(:)];

它會起作用。

暫無
暫無

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

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