structure indices in one line

I would like to extract values from a structure. I know how to do it in two lines of code, but is it possible in one?
temp = urlAuthsMap.values;
temp{1}
My solution would have been something like [urlAuthsMap.values]{1} but that doesn't work.
>> temp = urlAuthsMap.values
Columns 1 through 11
{1x4 cell} {1x1 cell} {1x3 cell} ...
>> temp{1}
ans =
'S. A. Abraham' 'H. A. Bodner' 'C. G. Harrington' 'R. C. White Jr.'

 Accepted Answer

Matt Fig
Matt Fig on 1 Oct 2012
Edited: Matt Fig on 1 Oct 2012
V = values(urlAuthsMap,KH); % KH is the key you want. See key.
From the link you showed above .... ;-)

1 Comment

Thanks a lot for your answer by email. i'll paste it in below
As far as I know, there is no way to index into newMap the way you want to.
keySet = {'Jun','Jul','Aug'}; valueSet = [ 69.9, 32.3, 37.3]; newMap = containers.Map(keySet,valueSet); values(newMap,keySet(1)) % This is how to do it.
As far as your other example, try this:
a{1} = [1,2,3] a{2}=[4,5,6]
a{2}(1)

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 1 Oct 2012
Edited: Image Analyst on 1 Oct 2012
urlAuthsMap.values = {'S. A. Abraham', 'H. A. Bodner', 'C. G. Harrington', 'R. C. White Jr.'}
% Here's how to do it.
caName1 = urlAuthsMap.values(1) % This is a cell.
strName1 = urlAuthsMap.values{1} % This is a string.

1 Comment

Thanks, I've tried this but am getting errors for both. I realized that maybe my map object is special and doesn't work like a normal cell array. Any ideas?
urlAuthsMap.values{1} Error using containers.Map/values Invalid input for argument 2 (rhs2): Value must be 'cell'.
>> urlAuthsMap.values(1) Error using containers.Map/values Invalid input for argument 2 (rhs2): Value must be 'cell'.

Sign in to comment.

Categories

Find more on Scripts in Help Center and File Exchange

Products

Tags

Community Treasure Hunt

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

Start Hunting!