Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 理解Matlab中字符串表示的数据类型_String_Matlab - Fatal编程技术网

String 理解Matlab中字符串表示的数据类型

String 理解Matlab中字符串表示的数据类型,string,matlab,String,Matlab,我有一个字符串,像'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'; 首先将字符串替换为“string” 下一个是双打 最后捕捉整

我有一个字符串,像
'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';
  • 首先将字符串替换为“string”
  • 下一个是双打
  • 最后捕捉整数:
例如:

  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');

我想对于字符串,我们需要使用+而不是*是,对于这个测试用例,
+
*
给出了相同的结果。但是,这不会捕获包含数字的字符串。因此
string1
将转换为
stringinteger