how velocize operation boolean
Afficher commentaires plus anciens
N = 5
a=[0.3 1 0 3 9]
b=a<N
find(b&(~a))
Réponses (2)
Image Analyst
le 6 Sep 2023
That code has nothing to do with your subject line. You want
logicalIndexes = a == 1
% or
linearIndexes = find(a == 1)
Same for b or any other variable.
5 commentaires
How is a-n equal to what you have wrote?
n=6;
a=[1 0 1 1 0];
b=a-n
pipor
le 6 Sep 2023
a=[0.3 1 0 3 9]
n=6
b=a<n
a>0
b
find((a==0)&(~(b==0)))
but with b already being logical, b==0 is the same as ~b, and ~ of that is ~~b which for logical would be the same as b
You asked : "(i want to find idx element that change from 0 to 1 )"
So do this:
a = [5, 0, 1, 9, 0, 1];
index = strfind(a, [0, 1]) % Look for where [0, 1] occurs in the vector.
The index is at the start, that is, where the zeros are.
5 commentaires
pipor
le 6 Sep 2023
" i want find element that: a==0 and b==1"
Try this:
a= [1 1 0 1 1]; % (is correct)
b = [1 1 1 1 0]; % (is correct)
logicalIndexes = (a == 0) & (b == 1)
linearIndexes = find((a == 0) & (b == 1))
This should all be covered in the learning on-ramp. To learn other fundamental concepts, invest 2 hours of your time here:

pipor
le 6 Sep 2023
pipor
le 6 Sep 2023
Image Analyst
le 6 Sep 2023
(b == 1) will be logical because it's comparing the number to 1. b can be any data type, like double or integer or logical. The result will be true or false values, or 1 and 0 if you convert them to numbers, for example to multiply element-by-element by another numerical vector.
If b is logical than (b) is logical (already). If b is a double vector like [1,2,44,66] then b is not logical -- not true or false values.
Catégories
En savoir plus sur Text Data Preparation dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
