Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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
Arrays 使用Matlab的sscanf从文本字符串中提取值_Arrays_String_Matlab_Text - Fatal编程技术网

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

是字符串变量语法错误还是文件内容错误?