How to determine if there is a value in a string and output it as a boolean?

2 Ansichten (letzte 30 Tage)
Amar
Amar am 23 Feb. 2014
Kommentiert: Amar am 2 Mär. 2014
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 Kommentar
Jan
Jan am 23 Feb. 2014
@Amar: Please do not post a question twice. Double posting confuses the ones, who want to help you.

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Mischa Kim
Mischa Kim am 23 Feb. 2014
Bearbeitet: Mischa Kim am 23 Feb. 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 Kommentare
Mischa Kim
Mischa Kim am 23 Feb. 2014
Bearbeitet: Mischa Kim am 23 Feb. 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
Jan
Jan am 23 Feb. 2014
Bearbeitet: Jan am 23 Feb. 2014
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().

Melden Sie sich an, um zu kommentieren.


David Young
David Young am 23 Feb. 2014
I think you just want
if A(a) == 1
% actions
end

Kategorien

Mehr zu Simulink finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by