如何在一行中使用`textscan`函数的多个输出?

时间:2013-04-20 23:46:37

标签: string matlab parsing textscan

假设我有以下字符串:

  

s ='Foo 1.000 3.000 3.554'

我想用textscan函数阅读它,如下所示。

  

[name x y z] = textscan(s,'%s%f%f%f')

然而,当我这样做时,我总是得到Too many output arguments错误。

我认为这与textscan输出单元格数组的事实有关,但我无法发现如何解决这个问题以及所需的效果。

1 个答案:

答案 0 :(得分:2)

你需要两条线来做你想做的事。首先,您将所需的值转换为虚拟变量,然后使用deal分发数据:

dummy = textscan(s, '%s %f %f %f');
[a,b,c,d] = deal(dummy {:});