- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Matlab 中使用 ismember
来查找向量 A
中不包含在向量 idx
中的整数。我想知道我是否可以使用更快的东西。
关于我的问题,我找到了 this answer但它在这里似乎不起作用,因为我需要索引位置。
rng default; %for reproducibility
A=randi([0 6],2097144,1); %2097144x1
idx=randi([0 6],4,1); %4x1
tic
% Find elements of idx not in A
[idx2,~,~]=unique(A);
[~,idx3]=ismember(idx,idx2);
idx4=idx(~idx3);
toc
Elapsed time is 0.278835 seconds.
最佳答案
您可以使用 setdiff
相反,它将找到第二个输入中不存在的第一个输入的元素。
result = setdiff(idx, A);
对于您提供的输入大小,我的执行时间缩短了 35 倍。这可能是因为您正在使用 unique(A)
这将是昂贵的,因为它必须排序和处理那个巨大的数组。
作为旁注,tic
和 toc
不是一种非常准确的基准代码方法。相反,您需要使用 timeit
。
function comparison()
A = randi([0, 6], 2097144, 1);
B = randi([0, 6], 4, 1);
disp(timeit(@()approach1(A, B)));
disp(timeit(@()approach2(A, B)));
end
function idx4 = approach1(A, B)
[idx2,~,~]=unique(A);
[~,idx3]=ismember(B, idx2);
idx4 = B(~idx3);
end
function res = approach2(A, B)
res = setdiff(B, A);
end
关于matlab - 当需要索引位置时,Matlab 中 ismember 的更快替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42955489/
以下命令返回 1: ismember(-0.6, -1:.1:.9) 但下一个命令返回 0: ismember(-0.1, -1:.1:.9) 即使 -0.1 显然在 -1:.1:.9 中。 有人知道
我正在编写一个程序来测试字符串数组中是否存在字符串。我做了一个简单的函数来做到这一点: bool isMemberOfArrayStr(std::string str, std::string arr
opencv中matlab的ismember相当于什么? 我正在尝试将 matlab 代码转换为 opencv ( C/CPP )。为此,我需要将以下步骤转换为 Opencv。有人可以在这方面指导我吗
基于此XPages adding @Formulas in dialogList , 我的 dialogList1从两个连接的 View 中获取值:a和 b . 还有一个dialogList2 ,这取
isMember:: a -> [a] -> Bool isMember y [] = False isMember y (x:xs) = if y == x then True else
我需要创建一个名为 isMemeber 的递归 boolean 方法。该方法应该只接受两个参数:一个数组和一个值。如果在数组中找到该值,该方法应返回 true;如果在数组中未找到该值,则该方法应返回
假设我有两个数组: A:14 63 13 38 44 23 11 12 13 38 44 23 B:38 44 23 我正在尝试使用 ismembe
这是 ismember 的示例之一中描述的内容: Define two vectors with values in common. A = [5 3 4 2]; B = [2 4 4 4 6 8];
比如A是数字集合,b是元素。 我想测试b中的数是否是集合A的元素。 我知道 matlab 函数“ismember”可以做到这一点,但是当我使用它一百万次时它还不够快。 b=[1,2,9,100]; A
CriteriaBuilder 重载方法 isMember(...) 创建一个谓词来测试元素是否是集合的成员。 > Predicate isMember(E elem, Expression coll
我需要代码的这一部分更快地运行,因为它被多次调用。我是Matlab的新手,我觉得好像必须有一种方法来回去并不是那么简单。您可以提供任何有关如何提高我所拥有的速度或其他功能以帮助我执行此任务的帮助,我们
#include int isMember(); float calculatePrice(int,int,int); void printPlayer(); char name[4][100];
我试图在不同类的数组中寻找特定类的实例(在 TabBarViewController 中寻找特定 ViewController 的索引) 我有一个使用 type(of:) 检查类型的代码,但它不起作用
好吧,我正在尝试做一些很奇怪的事情。我正在尝试使用 CriteriaBuilder 和 CriteriaQuery 返回实体集合中包含给定对象的所有实体。我已经为此绞尽脑汁好几个小时了,相关文档很少而
我试图在 MATLAB 中执行逐行“ismember”,以便找出 Set 中 Input 的每个元素所在的位置。这是我到目前为止的工作。 function lia = ismemberrow(Inpu
如果我这样做 ismember([NaN 0 3 2],[0 NaN]) 那么输出是 0 1 0 0 我显然期望的地方 1 1 0 0 我试过了 ism
给定以下实体,如何构造 JPA 谓词以仅选择那些在其类别集中具有给定 ID 的类别的项目? @Entity public class Item { @Id private String id;
我在 Matlab 中使用 ismember 来查找向量 A 中不包含在向量 idx 中的整数。我想知道我是否可以使用更快的东西。 关于我的问题,我找到了 this answer但它在这里似乎不起作用
我有两个单元格,第一列作为字符串。我目前正在使用 ismember 来匹配两个单元格中的第一列元素。但 ismember 区分大小写。我无法使用 strcmpi 因为单元格大小不等。您能建议另一种方法
我在 Matlab 中使用 ismember 来查找向量 A 中不包含在向量 idx 中的整数。我想知道我是否可以使用更快的东西。 关于我的问题,我找到了 this answer但它在这里似乎不起作用
我是一名优秀的程序员,十分优秀!