Using conditional IF statement

1 visualización (últimos 30 días)
summyia qamar
summyia qamar el 19 de Dic. de 2016
Respondida: Steven Lord el 19 de Dic. de 2016
I have a matrix A and I generate B=randi([0,1],7,3).I want C=A*B only if sum of each row of B=1..I tried this..
A=[1 0 0 1 0 1 1
0 1 1 1 0 0 1
1 0 0 1 1 0 0
1 0 0 0 1 0 1
1 1 0 0 0 1 0
0 1 0 0 0 1 1]
for k=1:numIterations
B=randi([0,1],7,3);
if sum(B,2)==1;
C=A*B;
end
end
how to use IF condition in this case?
  2 comentarios
Walter Roberson
Walter Roberson el 19 de Dic. de 2016
What do you want to have happen if the condition is met multiple times within the "for k" loop? You are overwriting all of C each time.
summyia qamar
summyia qamar el 19 de Dic. de 2016
thankyou..I skipped C(k)

Iniciar sesión para comentar.

Respuesta aceptada

Roger Stafford
Roger Stafford el 19 de Dic. de 2016
if all(sum(B,2)==1)
  1 comentario
summyia qamar
summyia qamar el 19 de Dic. de 2016
I tried this.
A=[1 0 0 1 0 1 1
0 1 1 1 0 0 1
1 0 0 1 1 0 0
1 0 0 0 1 0 1
1 1 0 0 0 1 0
0 1 0 0 0 1 1];
for k=1:numIterations
B=randi([0,1],7,3);
if all(sum(B,2)==1)
C=A*B
end
end
[B C(ones(7,1))]
and result is C =
1 2 1
0 4 0
2 1 0
2 1 0
1 1 1
0 2 1
ans =
0 0 1 1
1 0 0 1
1 0 1 1
1 1 0 1
1 0 1 1
1 0 0 1
0 0 1 1
row 3 is not upto the condition

Iniciar sesión para comentar.

Más respuestas (1)

Steven Lord
Steven Lord el 19 de Dic. de 2016
Don't generate B randomly, or at least not the way you're generating it. Your constraint on B is that each row must have exactly one nonzero value. So generate the index of the column in each row that contains the nonzero value and use that to generate a B matrix that is guaranteed to satisfy your constraint.
numRows = 10;
numCols = 5;
rowind = (1:numRows).';
colind = randi(numCols, numRows, 1);
B = accumarray([rowind, colind], 1, [numRows, numCols]);
check = all(sum(B, 2) == 1)
The sz input to accumarray is necessary for the (unlikely) case where no row has a 1 in the last column, to ensure B is the correct size.

Categorías

Más información sobre Get Started with MATLAB en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by