给定一个二维数组,我需要提出一个输出质心的算法。我提出了下面的算法,但是,当数组大小增加到10 x 10矩阵时,它会产生不正确的解决方案。我使用java编写并运行了该算法。我没有在这里提供代码,但只是我的算法的解释,因为我觉得它是不正确的。但是,我无法找出原因。矩阵的质心
Store into an array: Mean of each row
Store into an array: Mean of each column
The algo below is used for row and column:
Loop through the row array,
if(row = 1){
value = (mean of row 1) - (mean of row 2 + mean of row 3+ mean of row 4)
}else if(row =Length of array){
value = (mean of row 1 + mean of row 2 + mean of row 3) - (mean of row 4)}
else{
value = (mean of rows until ith row) - (ith row till end of array)
}
final value = lowest value;
我知道它应该处理行和列的平均值。所以在我的算法中,我找到了行和列的方法,然后进行上面显示的计算。相同的算法适用于列。
任何和所有的帮助表示赞赏。也许,我对质心的理解是不正确的。如果事情不清楚,那就问问。这是我自己的算法,是根据我对质心的理解而创建的,所以如果它不明确,请不要问。谢谢!
看看这里:https://en.wikipedia.org/wiki/Center_of_mass我想说如果你把细胞看作是在二维平面上等距离排列的粒子,你应该能够调整相应的方程。 – Thomas
你的算法没有提到距离,这是关键(双关意图)。 – weston
@Thomas,Cells表示二维数组中的每个单独值?并使用在粒子系统下找到的方程式,并将m替换为二维数组中的值,并且由于距离相等,R不包含在内?谢谢。 – user3453250