MATLAB:查找;平均;平方二元矩阵中的索引
假设我们有nxn二进制矩阵MATLAB:查找;平均;平方二元矩阵中的索引,matlab,matrix,average,Matlab,Matrix,Average,假设我们有nxn二进制矩阵M。在MATLAB中,我想找到对应于1的点的“平均”索引 为了进行说明,显示了以下示例。红色圆圈表示单元格值为1,所有其他单元格值均为0。绿色的x是我想要返回的索引。最佳拟合的蓝线进一步说明了我的观点 我特别寻找高效的代码来实现这一点。任何有一些简单数学技能的人都可以计算这个“平均”指数,但由于MATLAB基于循环/迭代的效率低下,我需要编写快速代码。这个怎么样: Rand_matrix=randi([0 1],3,3); %random binary matrix
M
。在MATLAB中,我想找到对应于1的点的“平均”索引
为了进行说明,显示了以下示例。红色圆圈表示单元格值为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非常擅长处理矩阵。循环在Matlab中非常昂贵。特别是嵌套循环。在我的具体案例中,我正在实现的已经是嵌套循环,因此任何额外的循环都是非常不可取的。看看Matlab。我了解在Matlab中提高性能的各种方法。这超出了这个问题的范围,而且最终是无关紧要的。然而,为了简单起见,假设上面的嵌套循环是不可避免的,因此内部代码需要高效。在什么意义上高效?此外,在Matlab中,如果您正在寻找C代码,则可以调用C代码。