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

发布于 2024-11-07 06:40:02 字数 454 浏览 0 评论 0原文

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

str='foo bar'

我想将它用于某个命令:

mex(..., str)

它不起作用,因为 mex 将 str 作为一个参数处理(因此作为 mex(..., 'foo bar '))。如何做到这一点,matlab 将其识别为这样的函数调用:

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

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

谢谢!

Hey there,
I have the following problem:
I have a string in matlab:

str='foo bar'

which I want to use for a certain command:

mex(..., str)

which does NOT work since mex handles str as ONE parameter (thus as mex(..., 'foo bar')). How to do this, that matlab recognizes it as a function call like that:

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

I don't this hardcoded on this certain example with 2 Parameters, it could also come a time where the strings expands to str='foo bar blupp' -> pass as mex(..., 'foo', 'bar', 'blupp').

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

允世 2024-11-14 06:40:02

使用 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' )

Use strread to convert to a cell array, and then {:} indexing to expand that back to a "comma separated list".

>> 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

Where the last line is exactly equivalent to

fprintf( 'Hello: %s\n', 'foo', 'bar', 'baz' )
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文