2014-02-11 5 views
1
에 문자열로지도 키 값을 가입

나 문자열 예를 들어matlab에

에지도의 키 값을 결합하기위한 가장 좋은 방법은 무엇 :

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

내가 변환하고자하는이

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

같은 문자열 mapObj 나는 키 값을 통해 루프를 통해 루프 라이브러리 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 문자열의 달의 순서가지도를 만들 때 사용한 순서와 같아야하는 경우에 대비하여 anwser를 확장했습니다. – Marcin

+0

추가 질문을 주신다면 감사합니다. if 문을 값에 추가하는 방법은 문자열 인 경우 '% s = % s'을 (를) 도와 주셔서 감사합니다! :) – LiJung

+0

@LiJung'if' 문을 추가하여 무슨 뜻인지 확실치 않습니다. 이 문장을 어디에 추가 하시겠습니까? – Marcin