gpt4 book ai didi

matlab - 是否有类似 "ismember"但效率更高的功能?

转载 作者:太空宇宙 更新时间:2023-11-03 19:14:57 28 4
gpt4 key购买 nike

比如A是数字集合,b是元素。

我想测试b中的数是否是集合A的元素。

我知道 matlab 函数“ismember”可以做到这一点,但是当我使用它一百万次时它还不够快。

b=[1,2,9,100];
A=[1,2,3,4,5,6,7,8,9];
tic;for ii=1:1e6,ismember(b,A);end;toc
Elapsed time is 45.714583 seconds.

我想返回 [1,1,1,0],因为 1,2,9 在集合 A 中,而 100 不在。

你知道像 ismember 这样的函数或者比“ismember”更高效的方法吗?

最佳答案

您可以使用 mex 版本,即 ismemberoneoutput。 mex 版本要快得多。

b=[1,2,9,100];
A=[1,2,3,4,5,6,7,8,9];
tic;for ii=1:1e5,ismember(b,A);end;toc
%Elapsed time is 9.537219 seconds. On my pc

% A must be sorted!!! In this example it is already sorted,
% so no need for this here.
tic;for ii=1:1e5,builtin('_ismemberoneoutput',b,A);end;toc
%Elapsed time is 0.376556 seconds. On my pc

关于matlab - 是否有类似 "ismember"但效率更高的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17714487/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com