24小时热门版块排行榜    

查看: 1049  |  回复: 4

xiashaoyan

新虫 (正式写手)

[求助] 怎样快速求1000个矩阵中,任意两个矩阵中重复的数值 已有1人参与

我们知道求两个矩阵中重复的数值,这个很简单,但是今天遇到一个问题,需要求很多个矩阵中,比如,现在一个元包cell,里面有1000个矩阵(编号为:1,2,3…,1000),都是一维数据,现在想计算任意两个矩阵中重复的数值,并返回返回有重复值的两个矩阵编号

发自小木虫Android客户端
回复此楼

» 猜你喜欢

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

xiashaoyan

新虫 (正式写手)

这个问题,想用Matlab计算,想快速计算,如果这个cell包含的矩阵太多,就计算很慢了

发自小木虫Android客户端
2楼2017-04-27 17:06:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fsy5810

木虫 (小有名气)

引用回帖:
2楼: Originally posted by xiashaoyan at 2017-04-27 17:06:49
这个问题,想用Matlab计算,想快速计算,如果这个cell包含的矩阵太多,就计算很慢了

用matlab就已经与快无缘的。建议用c++。

发自小木虫Android客户端
3楼2017-04-28 09:53:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1314168apple

金虫 (知名作家)

【答案】应助回帖

感谢参与,应助指数 +1
向量化函数可能可以!
可以用matlab 的arrayfun函数尝试解决。
下面例子是(假设一维的数据是10个)!

A=randi(10,1000,10); %随机生成1000个一维整数数据
B=nchoosek(1:1000,2);%生成所有的2对数组
fun=@(x)sum(A(B(x,1),==A(B(x,2),);%定义函数,计算一维数据相同数值的个数
tic,C=arrayfun(fun,1:499500);toc, %使用arrayfun计算,同时计算消耗的时间,一般3-4秒.499500为B的行数。
D=find(C>0);%找出相同数值大于零的数组
E=B(D,;F=[E C(D)'];%F的第一列、第二列是有相同数值的数组对,第三例为相同数值的个数
为了最终理解你所不理解的,你必须经历一条愚昧无知的道路。为了占有你从未占有的东西,你必须经历被剥夺的道路。为了达到你现在所不在的名位,你必须经历那...
4楼2017-04-28 16:23:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1314168apple

金虫 (知名作家)

引用回帖:
4楼: Originally posted by 1314168apple at 2017-04-28 16:23:23
向量化函数可能可以!
可以用matlab 的arrayfun函数尝试解决。
下面例子是(假设一维的数据是10个)!

A=randi(10,1000,10); %随机生成1000个一维整数数据
B=nchoosek(1:1000,2);%生成所有的2对数组
fun=@(x ...

那个符号有问题。
怎样快速求1000个矩阵中,任意两个矩阵中重复的数值
无标题.jpg

为了最终理解你所不理解的,你必须经历一条愚昧无知的道路。为了占有你从未占有的东西,你必须经历被剥夺的道路。为了达到你现在所不在的名位,你必须经历那...
5楼2017-04-28 16:27:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xiashaoyan 的主题更新
信息提示
请填处理意见