2010-02-01 27 views
1

我有一個java.util.HashMap對象,我想將其轉換成一個MatLab數據類型,也許是新的containers.Map類型。MatLab可以理解Java int數據類型嗎?

理想我可以這樣做:

it = javaHashMapObj.keySet.iterator; 
while it.hasNext 
    jkey = it.next; 
    someMatlabObj(jkey) = javaHashMapObj.get(jkey); 
end 

在其他潛在的問題(!請大家指出,解決,如果他們在你跳出),有問題,如果在Java的HashMap上的凸起點整數,it.next仍然會返回MatLab的雙重對象,然後它將不會作爲與javaHashMapObj.get的HashMap的關鍵字。

有人可以提出一種方法來解決這個問題嗎?擴展Java對象以爲我提供MatLab int32的密鑰?

回答

2

MATLAB將轉換爲定期輸入的號碼(這是一個雙)到Java原始INT,但如果你想要一個Integer對象,你必須自己明確的框它:

javaHashMapobj.get(java.lang.Integer(key)); 

http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_external/f6425.html了數據類型如何從MATLAB轉換爲Java的表格。

+0

感謝邁克,這與我真正想知道的相反,但仍然有幫助。 我的問題是,當it.next應該返回一個在Java中是一個Int的鍵時,MatLab會將該鍵作爲double來獲取。然後,當我嘗試使用它.next從Java對象獲取值時,它們不起作用,因爲Java哈希只有Int鍵。 當然,我可以使用int32(it.next)將它轉換爲MatLab int,然後該值將作爲Java哈希中的一個鍵。但是我想要有一種方法來處理這種情況,而不必事先了解密鑰。 – Chinasaur 2010-02-03 23:46:05

相關問題