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

3 ビュー (過去 30 日間)
Joanne
Joanne 2011 年 9 月 28 日
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 Center および File ExchangeEntering Commands についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by