矩阵的“对称”行

4个视图(过去30天)
米甲
米甲 2020年2月10日
评论道: 米甲 2020年2月11日
我有一个整数矩阵A (nA x c),它有偶数列(例如mod(c,2) = 0)和唯一的行。
如何有效地(通过速度和内存优化函数“symmetricRows”)找到矩阵A iA1和iA2的“对称”行,其中“对称”行iA1和iA2定义为:
所有((iA1, 1:结束/ 2)= = (iA2结束/ 2 + 1:结束)和一个(iA1结束/ 2 + 1:结束)= = (iA2, 1:结束/ 2),2)= true
例子:
A = [1 1 1 1;
2 2 2 2;
1 2 3 4;
4 3 2 1;
2 2 3 3;
3 4 1 2;
3 3 2 2]
[iA1, iA2] = symmetricRows(A)
iA1 =
1
2
3.
5
iA2 =
1
2
6
7
矩阵的典型尺寸A: nA ~ 1e4-1e6, c ~ 60 - 120
该问题是由大数据集的预处理引起的,其中“对称”行与用户定义的距离度量无关。

接受的答案

米甲
米甲 2020年2月11日
编辑:米甲 2020年2月11日
我提出了目前为止最好的解决方案:
d = ~pdist2(A(:,1:end/2), A(:,end/2+1:end));
[iA1, iA2] = find(triu(d & d.'));
4评论
米甲
米甲 2020年2月11日
是的,当然,MATLAB Online根本不是计算任何内存或CPU密集型任务的正确方法…:)

登录发表评论。

更多答案(0)

类别

找到更多资料对角矩阵运算帮助中心而且文件交换

标签

下载188bet金宝搏


释放

R2019b

社区寻宝

在MATLAB中央找到宝藏,并发现社区可以如何帮助你!

开始狩猎!