Arrays 使用Matlab的sscanf从文本字符串中提取值
我有以下字符串:Arrays 使用Matlab的sscanf从文本字符串中提取值,arrays,string,matlab,text,Arrays,String,Matlab,Text,我有以下字符串: str={"USD":{"last":352.49,"bid":352.49,"ask":353.6, "high":358.75,"low":349.34,"volume":6678.7783}..... 我想提取列向量中的值,如下所示 colvector=[352.49,352.49,353.6,358.75,349.34,6678.7783] 我相信sscanf函数可以用于提取所需的格式。我尝试了使用sscanf的不同变体,但还没有成功地从字符
str={"USD":{"last":352.49,"bid":352.49,"ask":353.6,
"high":358.75,"low":349.34,"volume":6678.7783}.....
我想提取列向量中的值,如下所示
colvector=[352.49,352.49,353.6,358.75,349.34,6678.7783]
我相信sscanf函数可以用于提取所需的格式。我尝试了使用sscanf的不同变体,但还没有成功地从字符串中提取值
fmt=['{"USD":{"last": "%f", "bid": "%f", "ask": "%f",
"high": "%f", "low": "%f", "volume": "%f"}...
例如,colvector=sscanfstr,fmt未成功运行。假设您有一个包含该文本的字符串变量
s = 'str={"USD":{"last":352.49,"bid":352.49,"ask":353.6,"high":358.75,"low":349.34,"volume":6678.7783}.';
您可以应用正则表达式来隔离所需的字符串,该字符串由数字组成,后跟小数点和数字(可选)。为此,可以使用带有“匹配”选项的函数。这将生成字符串的单元格数组。然后使用with将每个字符串转换为一个数字。将所有内容合并为一行
result = cellfun(@str2num, regexp(s, '\d+(\.\d+)?', 'match'));
对于示例字符串,这将生成:
result =
1.0e+003 *
0.3525 0.3525 0.3536 0.3588 0.3493 6.6788
是字符串变量语法错误还是文件内容错误?