のような文字列が'12,23,43,erogol,bla,3.4'
あり、それを解析して、この文字列に含まれる値のタイプを確認したいと思います。たとえば、その文字列を関数に与えるとoutput=["integer,integer,integer,string,string,double"]
、関数の戻り値のようなベクトルが期待されます。
どうすればMATLABでそれを行うことができますか?
これは、正規表現を使用して非常に簡単に実行できます。
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');