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

3 次查看(过去 30 天)
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?

回答(1 个)

Walter Roberson
Walter Roberson 2011-9-28
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 个评论
Joanne
Joanne 2011-9-28
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')

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Entering Commands 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by