Matlab - 投票矩阵

3
假设我有一些大小相同的矩阵(每个矩阵有p x q个元素),您能否获取一个包含每个对应位置上最高频元素的矩阵?
例如,假设我有3个3 x 3的矩阵:
m1 = [1 0 0; 0 2 0; 0 2 0]
m2 = [1 0 0; 0 2 0; 0 3 0]
m3 = [1 0 0; 0 0 0; 0 3 0]

生成的矩阵应该是:
 m = [1 0 0; 0 2 0; 0 3 0]

我通过遍历矩阵的每个位置来完成此操作,但在我的实际情况中,我的矩阵大小为1000 x 1000,这将花费太长时间。是否有自动化的方法来完成此操作?

1个回答

8

首先,您应该将所有内容组合成一个3D数组;这比有很多单独命名的2D数组要容易处理得多。

一旦完成,您可以简单地执行mode(m_everything, 3)


这并不能解决我的问题。如果我有一个类似于“2 2 3”的位置,最频繁的将是“2”,而max函数则会返回“3”。 - Simon
@Simon,用户:抱歉我的错误,我读错了。请尝试使用“mode”! - Oliver Charlesworth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接