Problem with iteration involving matrix

1 Ansicht (letzte 30 Tage)
muhammad muda
muhammad muda am 28 Mai 2019
Kommentiert: muhammad muda am 28 Mai 2019
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

Antworten (1)

KALYAN ACHARJYA
KALYAN ACHARJYA am 28 Mai 2019
Bearbeitet: KALYAN ACHARJYA am 28 Mai 2019
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
  1 Kommentar
muhammad muda
muhammad muda am 28 Mai 2019
Actually I do expect the C to be 3x3 because after first iteration, the matrix Mmin and Mmax is 3x4, reduced one row than before.
The values of i and j are also 3. So C (i,j)should be 3x3. Maybe I'm wrong but that is what I intend to do. I'm really stuck here.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Mathematics finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by