2017-10-08 87 views
0

假设我们有nxn二进制矩阵M。在MATLAB中,我想找到对应于1的点的“平均”索引。MATLAB:在方形二进制矩阵中查找“平均”索引

为了说明,下面的例子被显示。红色圆圈表示单元格值为1,所有其他单元格值为0.绿色x是我想要返回的索引。最合适的蓝线进一步说明了我的观点。

enter image description here

我专门找了高效的代码来做到这一点。任何具有一些简单的数学技能的人都可以计算这个“平均”指数,但由于MATLAB的循环/迭代效率低下,我需要编写快速代码。

+0

*但是由于MATLAB的低效*低效什么? Matlab可以很好地处理它。 Matlab非常擅长处理矩阵。 – CroCo

+0

在MATLAB中循环是非常昂贵的。特别是嵌套循环。在我的具体情况中,我正在实现的是已经在嵌套循环中,所以任何额外的循环将是非常不希望的。 –

+0

在Matlab中查看[Vectorization](https://www.mathworks.com/help/matlab/matlab_prog/vectorization.html)。 – CroCo

回答

1

如何:

Rand_matrix=randi([0 1],3,3); %random binary matrix 
[rows,col]=find(Rand_matrix); 
row_mean=mean(rows); 
col_mean=mean(col); 
midpoint=[row_mean,col_mean]