24小时热门版块排行榜    

CyRhmU.jpeg
查看: 341  |  回复: 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的回帖

zjliu1265

至尊木虫 (正式写手)


nono2009(金币+1):鼓励应助! 2010-04-30 13:57
AI_JJC(金币+5):谢谢 2010-05-03 09:49
引用回帖:
Originally posted by AI_JJC at 2010-04-30 09:34:16:
问题:我用一个A(2,n)的数组存储n对数据,先针对任意一组数对[x,y],我想查找[x,y]是否存在于A中。
n十分大,查找的数量也是n级别的,想请教各位达人一个有效率的算法,谢谢。

我现用的方法是:
A_row_1=A(1 ...

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

你可以比较一下这几个算法的效率,呵呵
我对速度不感兴趣,只是希望结果正确
2楼2010-04-30 12:49:15
已阅   回复此楼   关注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 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见