Creating logical arrays based on condition
Afficher commentaires plus anciens
I have an output array a[0.5,0.7,0.9], a threshold array b[0.3, 0.8, 0.7], and a lookup values array c[0,1,2]
I want a finalOutput array, f, which contains the corresponding values c if a>b else -1.
I decided to use a logical indexing array using the following code for this:
a(a>b)=1;
a(a<=b)=0;
a=logical(a);
f=c(a);
But f only contains the values of c where a=1. How can I write conditional statements to get f=[0,-1,2] ?
I also want to get the logical a in one line, because the second line of code gives incorrect outputs if I change a to [1.5, 0.7, 0.9] and b to [1.3, 0.8, 0.7].
Appreciate all suggestions.
1 commentaire
Walter Roberson
le 30 Déc 2018
a(a>b)=1;
a(a<=b)=0;
a=logical(a);
could be replaced with
a = a > b;
Réponse acceptée
Plus de réponses (1)
Stephen23
le 30 Déc 2018
0 votes
>> a = [0.5,0.7,0.9];
>> b = [0.3,0.8,0.7];
>> c = [0,1,2];
>> f = c;
>> f(a<=b) = -1
f =
0 -1 2
Catégories
En savoir plus sur Data Types 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!