if i have a matrix B=[1111000] and another integer T=4 i want to apply while loop if number of One's in B>=T how should i write it to get desire condition

12 comentarios

madhan ravi
madhan ravi el 9 de Sept. de 2019
Editada: madhan ravi el 9 de Sept. de 2019
What have you tried for your homework?
Ali Mukhtar
Ali Mukhtar el 9 de Sept. de 2019
i apply a for loop and put while condition until B matrix is have 1's but that is not correct
madhan ravi
madhan ravi el 9 de Sept. de 2019
Editada: madhan ravi el 9 de Sept. de 2019
Post the code that you tried.
youcha
youcha el 9 de Sept. de 2019
Can you please explain more of what do you want to do with your while loop? It should be in a form of : I want to do action B while the condition A is true. Your condition in this ase is B>=T while your action is not clear
Ali Mukhtar
Ali Mukhtar el 9 de Sept. de 2019
if i can count the number of 1's in B matrix i can apply the condition
Ali Mukhtar
Ali Mukhtar el 9 de Sept. de 2019
for i=1
for j=1:n %n= number of one in matrix B
while B(i,j)>=T
end
madhan ravi
madhan ravi el 9 de Sept. de 2019
hint: If one add one or else continue
Ali Mukhtar
Ali Mukhtar el 9 de Sept. de 2019
dnt understand in which one i have to add one? can i count number of 1's in B matrix?
madhan ravi
madhan ravi el 9 de Sept. de 2019
Your goal is to count the number of ones in B and then finally check if it's greater than or equal to T , is that right?
Ali Mukhtar
Ali Mukhtar el 9 de Sept. de 2019
yes exactly
madhan ravi
madhan ravi el 9 de Sept. de 2019
Why not use a for loop? Is loop necessary?
Ali Mukhtar
Ali Mukhtar el 9 de Sept. de 2019
not it is not neccesary this was last what i tried so sent it to you

Iniciar sesión para comentar.

 Respuesta aceptada

madhan ravi
madhan ravi el 9 de Sept. de 2019
Editada: madhan ravi el 9 de Sept. de 2019

1 voto

Just use logical indexing "==" to see the values equal 1 and use nnz() and then use >= T if you get 1 it's true else false.
help ==
help nnz
help >=

5 comentarios

Ali Mukhtar
Ali Mukhtar el 9 de Sept. de 2019
nnz()?
madhan ravi
madhan ravi el 9 de Sept. de 2019
help nnz % will tell you what it actually does [hint: this is to count the no of ones present in B]
Ali Mukhtar
Ali Mukhtar el 9 de Sept. de 2019
can you please write few code lines it become more and more complex
madhan ravi
madhan ravi el 9 de Sept. de 2019
nnz(B==1) >= T
%^^^^^^^^--- counts the number of ones
Ali Mukhtar
Ali Mukhtar el 9 de Sept. de 2019
we can use it with while loop
while or if nnz(B==1)>= T ?

Iniciar sesión para comentar.

Más respuestas (1)

David Hill
David Hill el 9 de Sept. de 2019

0 votos

If B is a 1 by x vector of 1's and 0's (B = [1,1,1,1,1,0,0,0,0,0])
while sum(B)>T
if B is a 1 by x character array (B = '1111100000')
while sum(double(B)-48)>T
Your matrix B is not described well above, it looks like a single number.

3 comentarios

Ali Mukhtar
Ali Mukhtar el 9 de Sept. de 2019
while sum(double(B)-48)>T
B is array which contains 1's and 0's . in above code line can you explain why you use 48 and subtract it from B
David Hill
David Hill el 9 de Sept. de 2019
If your array is a character array '111110000', then I converted to a number array which is a ascii representative of each character and subtract 48=='0' to get an array of 1's and 0's. If you already have an array of 1's and 0's you don't need to do this.
Ali Mukhtar
Ali Mukhtar el 9 de Sept. de 2019
but i dnt know if my value is exactly 111110000 so subtracting it from 48 is not fesible . if you show result by compiling it i can use it also

Iniciar sesión para comentar.

Categorías

Preguntada:

el 9 de Sept. de 2019

Comentada:

el 9 de Sept. de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by