2016-12-06 72 views
1

在爲自組織映射神經網絡編寫代碼時,我編寫了用於查找每個神經元權重與每個訓練輸入之間的歐氏距離的小碼。然後我用競爭函數使得元素的最大距離值爲1,並且爲零(稀疏矩陣)。在Matlab中查找未返回給定值的索引

換句話說,每行必須至少有一個元素爲1. 但是當我運行一個循環來查找每行中使用find函數的這些元素的索引時,我得到一個空矩陣。這是代碼提取。

euc=negdist(cluster,x_train); 
comp=compet(euc); 
for i=1:10 
ind=find(comp(i,:)==1); 
m=mean(x_train(:,ind),2); 
label(ind)=i; 

回答

1

功能compet將返回其中每個保證具有在其中的1,而不是每個行的0和1的矩陣。在您的代碼中,您正在提取行與行comp(i,:),並且其中一些行沒有任何行,所以find返回[]。您需要將您的索引換成comp(:,i)

我還會仔細檢查您使用的索引x_train,以確保您沒有將它們翻轉。

相關問題