str='foo bar'
我想用于某个命令:
mex(..., str)
由于mex将str
作为ONE参数处理(因此为mex(..., 'foo bar')
),因此无效。如何做到这一点,matlab将其识别为函数调用:
mex(..., 'foo', 'bar')
我没有对这个具有2个参数的特定示例进行硬编码,它也可能出现在字符串扩展为str='foo bar blupp'
- >的时候。传递为mex(..., 'foo', 'bar', 'blupp')
。
谢谢!
答案 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' )