MATLAB:在方形二进制矩阵中查找“平均”索引
问题描述:
假设我们有nxn二进制矩阵M
。在MATLAB中,我想找到对应于1的点的“平均”索引。MATLAB:在方形二进制矩阵中查找“平均”索引
为了说明,下面的例子被显示。红色圆圈表示单元格值为1,所有其他单元格值为0.绿色x是我想要返回的索引。最合适的蓝线进一步说明了我的观点。
我专门找了高效的代码来做到这一点。任何具有一些简单的数学技能的人都可以计算这个“平均”指数,但由于MATLAB的循环/迭代效率低下,我需要编写快速代码。
答
如何:
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]
*但是由于MATLAB的低效*低效什么? Matlab可以很好地处理它。 Matlab非常擅长处理矩阵。 – CroCo
在MATLAB中循环是非常昂贵的。特别是嵌套循环。在我的具体情况中,我正在实现的是已经在嵌套循环中,所以任何额外的循环将是非常不希望的。 –
在Matlab中查看[Vectorization](https://www.mathworks.com/help/matlab/matlab_prog/vectorization.html)。 – CroCo