making new objocts out of the content of a cell vector

1 次查看(过去 30 天)
Hello!
I am everything else than an expert in Matlab, but I hope that my explanation still makes sense to you. My problem is the following:
I have a vector that looks like this:
B = {'USA' 'GER' 'JAP'...}'; (it is actually 110 country codes
now I want to assign each country code a number like: USA = 1; GER = 2; JAP = 3; ... (keeping the same order as in the vector)
Is there a quick way of doing this?? I would be very glad if I don't have to write 110 country codes by hand!
Thaaaaank you very much!!

采纳的回答

Sean de Wolski
Sean de Wolski 2012-10-18
It sounds like you might want to use a containers.Map object.
doc containers.Map
And an example:
cm = containers.Map({'USA';'GER';'JAP'},[1;2;3]);
And a sanity check, is 'USA' number 1?
cm('USA')
You betcha!

更多回答(1 个)

Azzi Abdelmalek
Azzi Abdelmalek 2012-10-18
B = {'USA' 'GER' 'JAP'}
B=[B;num2cell(1:numel(B))]

标签

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by