Extract data from all values of a containers.Map collection
Show older comments
Hi all,
Suppose I have a containers.Map key/value collection with n entries (hundreds and more). Suppose all entries have a filed ‘My_Filed’ which is an array of 1x3 doubles.
I want to create a matrix of nx3 from all these values. Of course, I can achieve this by getting all values and use a ‘for loop’ to build the matrix (with pre-allocation for speed).
My question is: is there a faster way to create this matrix?
Thanks,
Alon
Accepted Answer
More Answers (1)
Mohammad Sami
on 16 Mar 2020
I assume that each of value in the container is a struct with identical fields.
You can just get all the values like this
% M = containers.Map
valueSet = values(M); % this will return a cell array of structs.
My_Filed = cellfun(@(x)x.My_Filed,valueSet,'UniformOutput',false);
My_Filed = vertcat(My_Filed{:});
Categories
Find more on Operators and Elementary Operations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!