2017-10-08 86 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]