我试图取矩阵列中选择值的平均值,根据它们在另一列中的值来选择它们。
例如:
X=[1950 1;
1950 2;
1950 3;
1951 1;
1951 5;
1952 1]我想取每年值的平均值--基本上,选择具有相同列1值的值,然后取相应的第2列值的平均值。所以1950的平均值是2,1951的平均值是1。我可以手动地为每一年的值创建一个向量,然后取整个向量的平均值,但是对于更多的数据来说,这是不切实际的。每年的数据点数不同,所以我不认为我可以用重塑来做这件事。
发布于 2014-04-04 15:12:54
你想要accumarray
[~, ~, ii ] = unique(X(:,1));
result = accumarray(ii, X(:,2), [], @mean);我建议您彻底阅读accumarray,看看它是如何工作的。这是一个非常强大和灵活的功能。
https://stackoverflow.com/questions/22866428
复制相似问题