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.
If statement using Char class variable
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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.
Akzeptierte Antwort
Walter Roberson
am 19 Jun. 2012
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)
Siehe auch
Kategorien
Mehr zu Characters and Strings finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!