필터 지우기
필터 지우기

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

조회 수: 3 (최근 30일)
Amar
Amar 2014년 2월 23일
댓글: Amar 2014년 3월 2일
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
Jan
Jan 2014년 2월 23일
@Amar: Please do not post a question twice. Double posting confuses the ones, who want to help you.

댓글을 달려면 로그인하십시오.

답변 (2개)

Mischa Kim
Mischa Kim 2014년 2월 23일
편집: Mischa Kim 2014년 2월 23일
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
Mischa Kim
Mischa Kim 2014년 2월 23일
편집: Mischa Kim 2014년 2월 23일
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 2014년 2월 23일
편집: Jan 2014년 2월 23일
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
David Young 2014년 2월 23일
I think you just want
if A(a) == 1
% actions
end

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by