How to return a true/false logical array from a string array of repeating numbers?
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
ans = 3 2 1 5 1 4 0
I want this to return a 7x1 logical array 0 0 1 0 1 0 0. Corresponding to the repeating “1” in the ans variable. Or 1 1 0 1 0 1 1. Whichever is easier to program. How do I do this?
0 commentaires
Réponse acceptée
Rohit Kulkarni
le 7 Juil 2022
I think this may work:
A = [3 3 2 1 5 1 0 4];
[uniqueA i j] = unique(A,'first');
idRep = find(not(ismember(1:numel(A),i)))
rep_var = A(idRep)
ll = ismember(A,rep_var)
Plus de réponses (1)
Jon
le 7 Juil 2022
x = [3 2 1 5 1 4 0]
L = x == 1
5 commentaires
Jon
le 7 Juil 2022
Modifié(e) : Jon
le 7 Juil 2022
That's fine as long as you have a solution, but I'm puzzled, as to why you would have array bounds errors, when as you can see it ran without issues in the small example I show above. As you had an array bounds error, are you sure you used :
[N,edges,bin]= histcounts(x,[u,u(end)+1])
and not:
[N,edges,bin]= histcounts(x,[u,u(end+1)])
Voir également
Catégories
En savoir plus sur Operators and Elementary Operations dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!