If statement using Char class variable

조회 수: 2 (최근 30일)
Diego Tasso
Diego Tasso 2012년 6월 19일
Hi there! I have had a cell class variable text3 size 1X2 containg '11-03'. I used the cell2mat function to convert this variable to char class variable cause I want to use an IF statement however the size of the variable remains 1X2. Below is an example of what I am looking to do:
text3 = { '11-05', '' , '' , '' ;
'' 'X' 'Y' 'Contact Size';
'A' '' '' '' ;
'B' '' '' '' ;
'C' '' '' '';
'D' '' '' '' ;
'E' '' '' '' };
[matchobj strsplit] = regexp(text3,'11','match','split');
A = cell2mat(matchobj{1:1});
if A < 15
P = 6;
else
P = 5;
end
Any one have any ideas as to what I can do to fix this ? Everything compiles.
  댓글 수: 1
Diego Tasso
Diego Tasso 2012년 6월 19일
By the way, A returns with 11 so I am thinking that its the fact that the size remains the same as when it was a cell class variable that is messing up the if statement.

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

채택된 답변

Walter Roberson
Walter Roberson 2012년 6월 19일
regexp() returns a cell array of strings for 'match'. matchobj{1:1} is thus already a string, so cell2mat() is just leaving it alone as a string. You then try to compare that string to the numeric constant 15. The string in the first case is '11' which is char([49 49]). [49 49] < 15 is false, so P = 5 will be assigned. The size() of '11' is 1x2 .
If you are wanting to interpret the '11' as a hex number and compare the decimal result to 15, then
A = hex2dec(matchobj{1});
  댓글 수: 1
Diego Tasso
Diego Tasso 2012년 6월 19일
Thanks once again. It all makes sense know.

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by