如何比较Matlab中的'(','/',''等特殊字符

时间:2011-08-30 03:18:27

标签: matlab

我有一个字符数组cA,每个字符的每个条目都存储一个字符,例如'a''(''['和{{1} }。 我的程序将迭代此数组并根据每个条目的内容执行某种类型的操作。例如,

'  '

对于if (cA(i) == 'a') do sth; end 'a'等字符,上述字符比较操作非常简单。 但是我如何处理'b''(''['等特殊字符(空格) 我可以写一些诸如

之类的东西
'  '

2 个答案:

答案 0 :(得分:2)

一般情况下,我建议使用STRCMP比较字符串,例如

if strcmp(cA(i),'('), doSomething, end

对于您的具体情况,我建议使用SWITCH/CASE声明。请注意,在Matlab中,这并不像c中那样;相反,只有“好”的情况才会被执行。根据我的经验,这有助于提高可读性。因此

for myChar = cA %# this loops over every char in the 1-by-n string
   switch myChar
      case 'a'
         do something
      case 'b'
      case {'c','d'} %# this is how you handle multiple chars with the same outcome
      otherwise
         error('char %s not handled',myChar) %# don't forget this
   end
end

答案 1 :(得分:0)

您是否尝试过并收到错误消息?因为它适合我:

c = '(';
if(c == '(') 
  disp('left paren')
end

按预期打印left paren