MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   Matlab中单元格数组的计算集并集 (https://www.labfans.com/bbs/showthread.php?t=23795)

poster 2019-12-10 20:48

Matlab中单元格数组的计算集并集
 
我有一个单元格数组,其中每个元素都包含一个id向量。我喜欢计算单元格数组中所有元素的并集。这是我目前的解决方案,但我觉得可以将其向量化或有一个更优雅的解决方案:

union_ids = union(encounter_ids{1},encounter_ids{2}); for i=3:1:numel(encounter_ids); union_ids = union(union_ids,encounter_ids{i}); end

[B]回答:[/B]

如果单元格数组元素是行向量,则可以执行以下操作:

union_ids = unique( [encounter_ids{:}] ); 相反,如果它们是列向量,则使用:

union_ids = unique( vertcat(encounter_ids{:}) ); 如果不确定,或者它们碰巧都是(某些是行向量,有些是列),则可以强制将它们全部当作列向量:

encounter_ids = cellfun(@(c)c(:), encounter_ids, 'UniformOutput',false); union_ids = unique( vertcat(encounter_ids{:}) );

[url=https://stackoverflow.com/questions/3507111]更多&回答...[/url]


所有时间均为北京时间。现在的时间是 01:16

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.