Вопрос о Matlab: передача строк в качестве параметров разделения в функцию - PullRequest
2 голосов
/ 12 мая 2011

Привет, У меня есть следующая проблема: У меня есть строка в Matlab:

str='foo bar'

, который я хочу использовать для определенной команды:

mex(..., str)

, который НЕ работает, поскольку mex обрабатывает str как ОДИН параметр (таким образом, как mex(..., 'foo bar')). Как это сделать, чтобы Matlab распознал это как вызов функции:

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

Я не жестко запрограммирован в этом конкретном примере с 2 параметрами, может также наступить время, когда строки расширятся до str='foo bar blupp' -> передать как mex(..., 'foo', 'bar', 'blupp').

Спасибо!

1 Ответ

3 голосов
/ 12 мая 2011

Используйте 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' )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...