0

のような文字列が'12,23,43,erogol,bla,3.4'あり、それを解析して、この文字列に含まれる値のタイプを確認したいと思います。たとえば、その文字列を関数に与えるとoutput=["integer,integer,integer,string,string,double"]、関数の戻り値のようなベクトルが期待されます。

どうすればMATLABでそれを行うことができますか?

4

1 に答える 1

2

これは、正規表現を使用して非常に簡単に実行できます。

input = '-12,12,0,erogol,bla,3.4,-3.4';
  • まず、文字列を「文字列」に置き換えます。
  • 次にダブルスをキャッチ
  • 最後に整数をキャッチします。

例:

  output = regexprep(input, '[a-zA-Z]*', 'string');
  output = regexprep(output, '[-]*[0-9]*[.][0-9]*', 'double');
  output = regexprep(output, '[-]*[0-9]*', 'integer');

出力に含まれるようになりました`integer,integer,integer,string,string,double,double'

次を使用してセル配列に分割できます。

varTypes = regexp(output, ',', 'split');
于 2012-10-17T20:31:53.910 に答える