24小时热门版块排行榜    

CyRhmU.jpeg
查看: 342  |  回复: 2
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

AI_JJC

至尊木虫 (正式写手)

[交流] 【求助】求助一个提高matlab数组查找算法效率的问题已有2人参与

问题:我用一个A(2,n)的数组存储n对数据,先针对任意一组数对[x,y],我想查找[x,y]是否存在于A中。
n十分大,查找的数量也是n级别的,想请教各位达人一个有效率的算法,谢谢。

我现用的方法是:
A_row_1=A(1,1:n);
A_row_2=A(2,1:n);

temp1=(A_row_1==x);
temp2=(A_row_2==y);

determine=sum(temp1&temp2);
如果determine大于1的话,说明(x,y)存在于A中。

试验了一下,这个算法效率不高。本人是小菜,对matlab内置的函数也不熟悉,请各位高手指点一些有效率的算法,后面还可以追加金币
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

AI_JJC

至尊木虫 (正式写手)

引用回帖:
Originally posted by zjliu1265 at 2010-04-30 12:49:15:



我再提供两个方法:
(1)使用unique函数;
(2)用下面这段程序:
B=repmat([x;y],1,n);
D=A-B;
dn=sum(abs(D));
rr=min(dn)
如果rr等于0或者足够小,可以认为[x,y]存在于A中。

你可以比较一下这几个 ...

我试了下,这个算法效率比我的还是要慢很多,谢谢你的回复。
也还望高手们继续不吝赐教
3楼2010-05-03 09:51:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 AI_SKY 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见