How to determine if there is a value in a string and output it as a boolean?
Afficher commentaires plus anciens
i.e,
A = [0 1 2 3 0 0 0]
I want to write:
-----------------
if % A(a)= 1%
content
end
---------
where 1<a<end.
so if at any index in A, there exists a A='1', the if statement is true and it is executed
Thanks
1 commentaire
Jan
le 23 Fév 2014
@Amar: Please do not post a question twice. Double posting confuses the ones, who want to help you.
Réponses (2)
Mischa Kim
le 23 Fév 2014
Modifié(e) : Mischa Kim
le 23 Fév 2014
Amar, you could use
a = 3;
if find(A==a)
...
end
Note, that in your case A is not a string but numeric array. To compare (find) characters or sub-strings in a string you'd use strcmp.
3 commentaires
Amar
le 23 Fév 2014
Mischa Kim
le 23 Fév 2014
Modifié(e) : Mischa Kim
le 23 Fév 2014
Something like:
A = {'0' '1' '2' '3' '0' '0'}; % cell array of char
a = '1';
if sum(strcmp(a,A))>0
fprintf('Character ''%s'' found in A\n',a);
else
fprintf('Character ''%s'' not found in A\n',a);
end
find(A==a) is tricky, because it can reply arrays without an element or withmultiple elements also. Then this is performed internally:
if all(find(A==a)) && ~isempty(find(A==a))
This implicit behaviour might be confusing, so I'd suggest to write explicitly:
if any(A==a)
While sum(strcmp(a,A))>0 is clear, the summation is less efficient than any().
David Young
le 23 Fév 2014
I think you just want
if A(a) == 1
% actions
end
1 commentaire
Amar
le 2 Mar 2014
Catégories
En savoir plus sur Simulink 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!