- A = [0.8807 1.0504 1.1811 1.3044 1.4255
- 1.0775 1.3031 1.4699 1.6254 1.7776
- 1.3875 1.7159 1.9458 2.1561 2.3605
- 1.9480 2.5117 2.8774 3.2014 3.5124
- 3.2681 4.6835 5.5202 6.2134 6.8599];
- x(1, 1) = 1;
- for k = 1:4
- B = ones(5,5) * diag(A(k,:));
- C = ones(5,5) * diag(A(k+1,:));
- D = abs(B' - C);
- [E, i] = min(D);
- [F, j] = min(E);
- x(k,2) = i(j);
- x(k+1,1) = j;
- end
- x(5, 2) = 5;
- z = zeros(5);
- for k = 1:5
- z(k, x(k,1):x(k,2)) = A(k, x(k,1):x(k,2));
- end
复制代码 1. 你给的图是有问题的,第二行的1.7776和第三行的1.7159明显比你给的要接近,第三行的1.94587和1.9481明显比你所给的更接近,希望以后尽量避免这种问题。
2. 根据你的文字描述,可以采用以下方法实现,方法稍微有点笨,不过没想到更加巧妙的办法。 |