如何过滤单元格中的数字

时间:2014-01-10 18:57:04

标签: matlab

我有一个单元格v { '$100' '100' 'text' 'word' },我希望根据以下基本规则过滤此单元格。即使单元格大小大于1000,如何以高效的方式管理它呢?

规则:

  • 如果号码以$开头,则过滤该条目并撰写price关键字
  • 如果它一无所示,请对其进行过滤,然后在其位置写下number

结果将是  {'price''number''text''word'}

1 个答案:

答案 0 :(得分:0)

使用strncmp测试每个单元格字符串的第一个字符(如果字符串为空),并使用logical indexing替换所选单元格:

v = { '$100' '100' 'text' 'word' }; %// data

v( cellfun( @(c) strncmp(c,'$',1), v) ) = {'price'};
v( cellfun( @(c) any(strncmp(c,{'1','2','3','4','5','6','7','8','9','0'},1)), v) ) = {'number'}