2014-02-08 23 views
0

我正在使用Floris'從此提示(find all indices of max values matlab)線程來實現類似的功能。這一直很好,但現在它已經不復存在了。在matlab中查找不返回任何索引的函數,即使向量包含選定的值

「首先,你找到的最大值,然後你發現所有相等的元素:」

m = max(myArray); 
maxIndex = find(myArray == m); 

「或使用變量名:」

maxChaqueCell = [4 5 5 4]; 
maximum = max(maxChaqueCell) 
indicesDesMax = find(maxChaqueCell == maximum); 

「這是你如何找到所有這些,而不僅僅是第一個。」

這是我的代碼:

%Choose only highest of pairs if two pairs 
HV = max(MCOs) 

%Find the indices of the dices to keep (Decide which dices to keep) 
maxIndex = find(e == HV) 

我想要做的顯然是得到索引數組所有HV在陣列電。然而,當我運行這段代碼時,我得到的只是一個空數組。見下文。

ans = 

2  2  4  6  5 


HV = 

2 


maxIndex = 

[] 

那麼我該怎麼辦?像我之前寫的那樣,它曾經工作過。我不確定我可能已經改變了什麼,但是當它停止工作時,我不記得修改了其他東西而不是輸入矢量(e)。據我所知,這應該沒有任何意義。

我試過重新啓動matlab沒有任何成功。

我會非常感謝任何答案。

/Spcaeyob

+1

本聲明中的'e':'find(e == HV)'? – MrAzzaman

+0

e是我想要從中獲取值的向量。對不起,我現在看到它在這裏被稱爲「ans」,但在我設置的腳本的早期版本e = ans – Spcaeyob

回答

0

如果你的代碼是:

HV = max(MCOs) 
maxIndex = find(e == HV) 

你有3個變量,你應該有兩個 - 特別是MCOse應該是相同的變量。這很可能是你之前將它們等同起來的,所以錯誤沒有出現。之後,在清理工作區之後,通信被破壞了,代碼也被破壞了。

+0

e是我想從中獲取值的向量。對不起,我現在看到它在這裏被稱爲「ans」,但在我已經設置的腳本的早期版本中,e = ans - user3286007 Feb 8 at 1:22 – Spcaeyob

+0

在你給出的代碼示例中,max()中的變量和find()是相同的,所以我認爲你的第一行應該是'HV = max(e)'或者第二行'MaxIndex = find(MCOs == HV)' – schodge

+0

謝謝你的輸入。這不是問題。我嘗試重新啓動計算機,問題本身已得到解決。 – Spcaeyob

相關問題