apply condition on Matrix?

1 view (last 30 days)
Ali Mukhtar
Ali Mukhtar on 9 Sep 2019
Commented: Ali Mukhtar on 9 Sep 2019
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 Comments
madhan ravi
madhan ravi on 9 Sep 2019
Why not use a for loop? Is loop necessary?
Ali Mukhtar
Ali Mukhtar on 9 Sep 2019
not it is not neccesary this was last what i tried so sent it to you

Sign in to comment.

Accepted Answer

madhan ravi
madhan ravi on 9 Sep 2019
Edited: madhan ravi on 9 Sep 2019
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 Comments
madhan ravi
madhan ravi on 9 Sep 2019
nnz(B==1) >= T
%^^^^^^^^--- counts the number of ones
Ali Mukhtar
Ali Mukhtar on 9 Sep 2019
we can use it with while loop
while or if nnz(B==1)>= T ?

Sign in to comment.

More Answers (1)

David Hill
David Hill on 9 Sep 2019
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 Comments
David Hill
David Hill on 9 Sep 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 on 9 Sep 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

Sign in to comment.

Categories

Find more on Operating on Diagonal Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!