目前我正在尝试找到一种紧凑的方法来平均一个 matrix。显而易见的解决方案是对矩阵求和,然后除以元素的数量。然而,我在苹果开发者网站上发现了一种方法,声称这可以使用 valueForKeyPath 以更简单的方式完成。这是链接在这里:
这是我目前正在尝试使其正常工作的示例:
-(void)arrayAverager
{
NSMutableArray *myArray = [NSMutableArray arrayWithCapacity:25];
[myArray addObject:[NSNumber numberWithInteger:myValue]];
NSNumber *averageValue = [myArray valueForKeyPath:@"@avg.self"];
NSLog(@"avg = %@", averageValue);
}
问题是:它不是对数组进行平均,而是将数组中的元素 1 逐 1 打印出来。
更新
-(void) pixelAverager
{
//Put x-coordinate value of all wanted pixels into an array
NSMutableArray *xCoordinateArray = [NSMutableArray arrayWithCapacity:25];
[xCoordinateArray addObject:[NSNumber numberWithInteger:xCoordinate]];
NSLog(@"avg = %@", [xCoordinateArray valueForKeyPath:@"@avg.intValue"]);
}