Retrieving an array of values for an array of keys from a containers.map object

3 vues (au cours des 30 derniers jours)
Joanne
Joanne le 28 Sep 2011
My code uses a containers.map object smap. I currently have the following inside a loop with over 6 million iterations:
val(i) = smap(key(i))
I'd like to take it out of the loop to make it faster - I can make a cell array of the (string) keys called keyList, and I tried
val_arr = cellfun(@(x), smap(x), keyList, 'UniformOutput', 'false')
which works but is actually a few seconds slower than just calling it inside the loop. Can you suggest how I might do this faster?

Réponses (1)

Walter Roberson
Walter Roberson le 28 Sep 2011
val_arr = cellfun(@(x), smap(x), keyList, 'UniformOutput', 'false')
is a syntax error, as it has no function body for the anonymous function.
If you remove the comma after @(x) then it becomes valid.
  1 commentaire
Joanne
Joanne le 28 Sep 2011
Sorry, that was a typing-from-memory error on my part (I don't have the code with me). The function _did_ work, but was slower. Pretend I wrote:
val_arr = cellfun(@(x) smap(x), keyList, 'UniformOutput', 'false')

Connectez-vous pour commenter.

Catégories

En savoir plus sur Entering Commands dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by