Problem with iteration involving matrix
1 回表示 (過去 30 日間)
古いコメントを表示
Hi,
I have problem in my coding that you can see in the attachment. Initially I have 4x4 matrix and I am computing the distance between each rows to find the compatibility C.
Everything seems good in the first iteration (for jj = 1:1). I have 4x4 matrix for C.
In second iteration (for jj = 1:2) the number of rows has been reduced to 3, hence I should be getting 3x3 matrix for C. But, I still get 4x4 matrix.
Please help me. Thank you.
Mmax = [8 2 3 9; 7 3 5 9; 6 4 7 10; 5 1 8 7]; %setting the initial matrix Mmin and Mmax
Mmin = Mmax;
for jj = 1:2 % jj = 1:1 for only 1 iteration
for i = 1:size(Mmax,1)
for j = 1:size(Mmin,1)
A = Mmax(i,:)
B = Mmax(j,:)
Y = Mmin(i,:)
Z = Mmin(j,:)
length = 0;
for k = 1:4
length = length + (max(A(k),B(k)) - min(Y(k), Z(k)));
end
length = length/4;
C(i,j) = 8 - length; %after 2nd iteration, i and j are both 3. But why do I have 4x4 matrix for C?
end
end
C = C - diag(diag(C));
maximum = max(max(C));
[x,y] = find(C==maximum);
%start merging
R1 = Mmax(x(1),:);
R2 = Mmin(y(1),:);
Rmax = max(R1,R2);
Rmin = min(R1,R2);
Mmax(x(1),:) = [];
Mmax(y(1),:) = [];
Mmin(x(1),:) = [];
Mmin(y(1),:) = [];
Mmax = [Mmax(1:end,:); Rmax]
Mmin = [Mmin(1:end,:); Rmin]
end
0 件のコメント
回答 (1 件)
KALYAN ACHARJYA
2019 年 5 月 28 日
編集済み: KALYAN ACHARJYA
2019 年 5 月 28 日
Why you expect that when jj=2 the C should be 3x3?
No
Your code is independent with jj, have you seen anywhere that apart from following line
for jj=1:2
jj just use to interarte the code two times, rest part of the code jj has no role.
Hence irrespective of any value of jj, you will get the following same output
The interation number 1
0 7.0000 5.7500 5.2500
7.0000 0 6.7500 5.7500
5.7500 6.7500 0 6.0000
5.2500 5.7500 6.0000 0
The interation number 2
0 6.0000 5.7500 5.2500
6.0000 0 5.0000 5.7500
5.7500 5.0000 0 6.0000
5.2500 5.7500 6.0000 0
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!