关于Matlab的问题:将字符串作为拆分参数传递给函数

时间:2011-05-12 11:06:24

标签: string function matlab

嘿那里, 我有以下问题: 我在matlab中有一个字符串:

str='foo bar'

我想用于某个命令:

mex(..., str)

由于mex将str作为ONE参数处理(因此为mex(..., 'foo bar')),因此无效。如何做到这一点,matlab将其识别为函数调用:

mex(..., 'foo', 'bar')

我没有对这个具有2个参数的特定示例进行硬编码,它也可能出现在字符串扩展为str='foo bar blupp' - >的时候。传递为mex(..., 'foo', 'bar', 'blupp')

谢谢!

1 个答案:

答案 0 :(得分:3)

使用strread转换为单元格数组,然后{:}建立索引以将其展开回“以逗号分隔的列表”。

>> x = 'foo bar baz'
x =
foo bar baz
>> xc = strread( x, '%s' )
xc = 
    'foo'
    'bar'
    'baz'
>> fprintf( 'Hello: %s\n', xc{:} )
Hello: foo
Hello: bar
Hello: baz

最后一行完全等同于

fprintf( 'Hello: %s\n', 'foo', 'bar', 'baz' )