Matlab中某矩阵具有三列数字,如何根据前两列数字来计算第三列的平均值?有矩阵(三列)如下:1 600000 31 600000 41 600000 51 600004 41 600004 51 600005 31 600005 31 600005 51 600005 41 600005 31 600005 41 600005 52 600
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/05 20:53:10
![Matlab中某矩阵具有三列数字,如何根据前两列数字来计算第三列的平均值?有矩阵(三列)如下:1 600000 31 600000 41 600000 51 600004 41 600004 51 600005 31 600005 31 600005 51 600005 41 600005 31 600005 41 600005 52 600](/uploads/image/z/7137105-33-5.jpg?t=Matlab%E4%B8%AD%E6%9F%90%E7%9F%A9%E9%98%B5%E5%85%B7%E6%9C%89%E4%B8%89%E5%88%97%E6%95%B0%E5%AD%97%2C%E5%A6%82%E4%BD%95%E6%A0%B9%E6%8D%AE%E5%89%8D%E4%B8%A4%E5%88%97%E6%95%B0%E5%AD%97%E6%9D%A5%E8%AE%A1%E7%AE%97%E7%AC%AC%E4%B8%89%E5%88%97%E7%9A%84%E5%B9%B3%E5%9D%87%E5%80%BC%3F%E6%9C%89%E7%9F%A9%E9%98%B5%EF%BC%88%E4%B8%89%E5%88%97%EF%BC%89%E5%A6%82%E4%B8%8B%EF%BC%9A1+600000+31+600000+41+600000+51+600004+41+600004+51+600005+31+600005+31+600005+51+600005+41+600005+31+600005+41+600005+52+600)
Matlab中某矩阵具有三列数字,如何根据前两列数字来计算第三列的平均值?有矩阵(三列)如下:1 600000 31 600000 41 600000 51 600004 41 600004 51 600005 31 600005 31 600005 51 600005 41 600005 31 600005 41 600005 52 600
Matlab中某矩阵具有三列数字,如何根据前两列数字来计算第三列的平均值?
有矩阵(三列)如下:
1 600000 3
1 600000 4
1 600000 5
1 600004 4
1 600004 5
1 600005 3
1 600005 3
1 600005 5
1 600005 4
1 600005 3
1 600005 4
1 600005 5
2 600000 4
2 600000 5
2 600000 4
2 600000 3
2 600004 5
2 600004 4
2 600005 4
2 600005 3
3 600000 3
3 600000 2
3 600000 1
3 600004 2
3 600004 3
3 600005 2
3 600005 3
我想要把一列和二列元素都相同的行对应的第三列进行平均,即要得到这样的结果:
1 600000 4
1 600004 4.5
1 600005 3.86
2 600000 4
2 600004 4.5
2 600005 3.5
3 600000 2
3 600004 2.5
3 600005 2.5
这里仅仅是例子,因为这个矩阵很长,无法一一计算,如何在matlab中编程?最好能够写成function形式,
Matlab中某矩阵具有三列数字,如何根据前两列数字来计算第三列的平均值?有矩阵(三列)如下:1 600000 31 600000 41 600000 51 600004 41 600004 51 600005 31 600005 31 600005 51 600005 41 600005 31 600005 41 600005 52 600
定义函数:
function C = mean_zd(A)
A=sortrows(A);
idx = [0; find(any([diff(A(:,1)) diff(A(:,2))],2)); size(A,1)];
n = length(idx) - 1;
C = zeros(n,3);
for i=1:n
B = A(idx(i)+1:idx(i+1),3);
C(i,:) = [A(idx(i+1),1:2) mean(B)];
end
disp(num2str(C))
设矩阵为A,调用:
mean_zd(A);
得到:
1 600000 4
1 600004 4.5
1 600005 3.857142857
2 600000 4
2 600004 4.5
2 600005 3.5
3 600000 2
3 600004 2.5
3 600005 2.5