2014-02-11 15 views
1

什麼是我加入地圖的鍵,值的字符串加入地圖鍵,值的字符串在Matlab

例如最好的辦法:

>> keySet = {'Jan', 'Feb', 'Mar', 'Apr'}; 
>> valueSet = [327.2, 368.2, 197.6, 178.4]; 
>> mapObj = containers.Map(keySet,valueSet) 

我想轉換mapObj

'Jan=327.2, Fab=368.2, Mar=197.6, Apr=178.4' 

字符串我已經通過鍵,值通過使用庫foreachlink循環試過了,循環,但我覺得可能是比這更好的解決方案。謝謝。

回答

2

這應該做的伎倆:

c = [keys(mapObj); values(mapObj)]; 
    outStr = sprintf('%s=%.1f, ', c{:}); 
    outStr(end-1:end) = []; % remove last comma and space 

給出:

outStr = 

    Apr=178.4, Feb=368.2, Jan=327.2, Mar=197.6 

如果你想擁有的密鑰相同的順序創建地圖時一樣,你可以這樣做:

c = [keySet; values(mapObj, keySet)]; 
    outStr = sprintf('%s=%.1f, ', c{:}); 
    outStr(end-1:end) = []; % remove last comma 

這給出:

outStr = 

    Jan=327.2, Feb=368.2, Mar=197.6, Apr=178.4 
+0

@LiJung對於字符串中月份的順序應與創建地圖時使用的順序相同的情況,我擴展了安裝程序。 – Marcin

+0

謝謝,爲進一步的問題如何在值中添加if語句,如果它是一個字符串呈現'%s =%s',感謝您的幫助! :) – LiJung

+0

@LiJung不知道你的意思是加入'if'語句。你想在哪裏添加這個聲明? – Marcin