- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 MATLAB 2015 中有一个程序,调用 intersect
函数超过 500 万次。例如:
x=[2,4,6,3]
y=[3,5,7,9,1,6,4]
tic;for i=1:5*1e6;t=intersect(x,y);end;toc;
*Elapsed time is 365.038992 seconds in my computer
但是由于 intersect
函数,我的程序太慢,是否有任何有效的替代方法 intersect
函数?内置或墨西哥或类似的东西。我还尝试了unique(x(ismember(x,y)))
:
tic;for i=1:5*1e6;t=unique(x(ismember(x,y)));end;toc;
*Elapsed time is 227.7381 seconds in my computer
虽然这会带来一些改进,但这还不够!我对 unique()
和 ismember()
也有同样的问题。
最佳答案
这是一个适用于所有情况的快速解决方案(元素可以是非唯一的和/或非正数)。
tmp = sort(x(ismembc(x,sort(y))));
t = tmp([~~diff(tmp),true]);
其背后的基本思想与您对 unique(x(ismember(x,y)))
的建议相同,但是 ismember
和 unique
很慢并且可以改进。我们可以使用内置的 ismembc
代替 ismember
,但我们需要确保第二个参数已排序。我们不使用 unique
,而是结合使用 sort
、diff
和逻辑索引。
与 Matlab 2013b 上的 intersect
相比,这提高了 ~15.5 倍:
>> tic; for i=1:1e5, tmp=sort(x(ismembc(x,sort(y)))); t = tmp([~~diff(tmp),true]); end; toc;
Elapsed time is 0.998081 seconds.
>> tic; for i=1:1e5, t = intersect(x,y); end; toc;
Elapsed time is 15.538410 seconds.
对于更具体的情况,如果你知道x
的元素是唯一的,你可以直接使用ismembc
的结果,得到~ 33 倍加速:
>> tic; for i=1:1e5, t = x(ismembc(x,sort(y))); end; toc;
Elapsed time is 0.465070 seconds.
基准结果在其他 Matlab 版本和/或 PC 上可能明显不同,但我相信无论如何结果都是相同的。
关于matlab - 在 matlab 2015 中寻找 "intersect"函数的有效替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37109093/
我有四个返回整数的查询。 select listOfIntegers from [something]... (编辑结果为 ROWS) 需要一种方法来做 select ... intersect se
我尝试过 Area.intersect(),并且想知道是否有一种方法可以使用 Path2D 创建与此类似的方法,因为我注意到使用 Path2D 作为形状时性能有所提升。换句话说,获取大 Path2D
我在使用 MARIADB 语言进行此查询时遇到问题。此查询不返回任何内容,但此查询应返回一行。我该怎么做才能让它发挥作用? `SELECT c.Raza, c.Nombre FROM caballos
为什么在 Groovy 中,当我创建 2 个列表时,如果我执行 a.intersect(b) 和 b.intersect(a) 会有区别: def list1 = ["hello", "world",
我需要在 MS Access 中交叉多个子查询。遗憾的是,Access-SQL 不支持 INTERSECT 关键字。我明白,我们如何使用两个表的 INNER JOIN 来获得我们想要的交集。但是我怎样
I have 5 equations and I've to take combination of 3 equations at a time to check if I'm getting
使用基本运算符,导出额外的运算符交集。 R ∩ S = ? 我认为可能是:(R ∪ S) - ((R -S) ∪ (S -R)) 但我也认为可能有更简单的方法吗? 最佳答案 A 与 B 相交等于 A
我有一个向量 A 定义为:(Ao+t∗Ad) 我还有一个圆锥体,其顶点(圆锥尖)V、轴方向D、底半径R 和高度H . 如何找到矢量和圆锥体之间的交点?我正在使用 glm 进行数学运算。 这是一个简单的
我正在寻找合适的加速结构来进行射线球相交测试(在游戏中)。适用以下条件: - 每帧大约有 100 个球体和 100 条光线可以相互测试 - 球体在每一帧中移动,光线也是如此 - 可以在每一帧中添加/删
我有两个代理集。是否有查找功能: 两个(相交)中都存在的代理的代理集 一个而不是另一个中存在的代理的代理集 我发现手动执行此操作非常困难,尤其是在三重ask内部需要它时 理想的用法类似于with语法:
如何测试交叉射线和三角形,如果存在如何获得从射线原点到交点的距离?如果在我的程序中我必须检查 1 条射线到 ~10000 个三角形,我可以使用什么优化?? 最佳答案 单个多边形射线相交测试很简单,只涉
我们如何使用交集方法组合两个 dfa? 最佳答案 使用叉积结构,正式解释here . 本质上,您将每个状态中的状态集交叉乘积,以获得与每台机器的任意状态组合相对应的元状态列表。如果两者都接受,这允许您
我的问题是关于 python pandas 的。我有两个系列,每个系列都有如下字符串元素:为了简化,我在 DataFrame 中连接了两个系列。 import pandas as pd import
我有两个表:P 和 PC(主要/详细信息由列 Id 连接) Table P: Id integer Name varchar(12) Table PC: Id integer Code varch
我正在使用Intersection Observer API,我想知道: 如何消除或限制Intersection Observer API? 如果我想提高性能,是否建议使用防抖或 throttle 功
可能真正的问题是“是否有人关心”,但这是不一致的地方: intersect(c(),1:3) integer(0) intersect(1:3,c()) NULL 同样的事情发生在 setdiff 上
我正在从事一个涉及 Neo4J Db 的项目,但我遇到了一个我自己无法解决的问题。 我们正在处理图中的 Acl。每个 Acl 都链接到一组元数据。项目也链接到这些元数据。当链接到项目的所有元数据也链接
我正在尝试在具有一个障碍物(暂时)的昆虫(蟑螂)社会中实现一种碰撞检测算法(极限环方法),为此障碍物(红色)被一圈包围影响(绿色),在这里,一旦检测到“roach”和“影响圈”之间的交叉点,我将计算每
我正在做题 Find all students who do not appear in the Likes table (as a student who likes or is liked) an
我有两个结果,希望得到这两个结果的最佳“顺序”。示例: 我们有一场比赛,一场比赛有 5 人,另一场比赛有 7 人。结果是:比赛 1. 1. Karl 2. Fred 3. John 4. Peter
我是一名优秀的程序员,十分优秀!