If statement using Char class variable

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 Kommentar

Diego Tasso
Diego Tasso am 19 Jun. 2012
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.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 19 Jun. 2012

1 Stimme

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});

Weitere Antworten (0)

Kategorien

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by