Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB:查找;平均;平方二元矩阵中的索引_Matlab_Matrix_Average - Fatal编程技术网

MATLAB:查找;平均;平方二元矩阵中的索引

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

假设我们有nxn二进制矩阵
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代码。