How to take logical or of all the elements in the vector without a loop?
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Jay Vaidya
el 16 de Nov. de 2020
Comentada: KSSV
el 16 de Nov. de 2020
I am trying to use
or(a(1,1):a(1,size(a,2)))
but it doesn't run for more than 2 elements.
also when I run
or(1,1,0,0.1,0,1)
it doesn't run. It only runs for 2 inputs i.e.
or(1,0)
Is there no direct way that I can take the logical OR of elements a(1,1) to a(1,size(a,2))?
1 comentario
Respuesta aceptada
Ameer Hamza
el 16 de Nov. de 2020
Editada: Ameer Hamza
el 16 de Nov. de 2020
or() is an operator just defined for two inputs. In case of multiple inputs, you can use any() which is equivalent to or of all elements
>> y = any([1,1,0,0,1,0,1])
y =
logical
1
Similarly, all() is equivalent to and of all elements
>> y = all([1,1,0,0,1,0,1])
y =
logical
0
0 comentarios
Más respuestas (1)
KSSV
el 16 de Nov. de 2020
Note that you have two types of indexings in MATLAB.
- Indexing
This is a number and should be posittive integers greater than 0. If number is negative or fracation, it will throw error.
A = rand(1,10) ;
A(1) % first element
A(end) % last element
A(1:5) % elements from 1 to 5
A(-) % error
A(0) % error
2. Logical indexing
Here indices are 0 and 1's. This would be class of logical.
A = rand(1,10) ;
idx = A>0.5 ; % get elements greater than 0.5. 0 where conditon fails and 1 where condition mets.
A(idx) % this will pick the elements at the above condition satisfies
4 comentarios
KSSV
el 16 de Nov. de 2020
a = [1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1] ;
b = a(1)|a(2) ;
for i = 3:length(a)
b = b|a(i) ;
end
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!