Convert Composite to array?

13 ビュー (過去 30 日間)
Erik S.
Erik S. 2015 年 3 月 28 日
コメント済み: Walter Roberson 2020 年 12 月 1 日
Is it possible to convert a Composite object created with spmd to an array?

採用された回答

Edric Ellis
Edric Ellis 2015 年 3 月 30 日
Yes, you can use Composite indexing (which behaves pretty much like cell array indexing), like this:
spmd
x = labindex;
end
xlocal = [x{:}]
  2 件のコメント
Ronald Henry
Ronald Henry 2020 年 12 月 1 日
is there a faster way? this method is sloooooow.
Walter Roberson
Walter Roberson 2020 年 12 月 1 日
is there a faster way?
If I read the code correctly, you could use struct() to access private properties of the composite object, and then call some internal routines directly. It would take you a bit of research to figure out which routines to call on which objects, and you might have to shadow the existing class definitions to get access permissions to access the functions.
If I read the code correctly, if you did all of this, then for each composite member access, you would be able to skip one check of whether you are inside a parfor loop. Should be good for about 3 milliseconds per pool member.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeParallel Computing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by