3

我有一个库函数,它将参数作为文本字符串(它是一个带有 MATLAB 前端的通用 C 库)。我想用这样的一组参数来调用它:

'-a 0 -b 1'
'-a 0 -b 2'
'-a 0 -b 3'
'-a 1 -b 1'
'-a 1 -b 2'
'-a 1 -b 3'

ETC...

我正在创造abwith的价值meshgrid

[a,b] = meshgrid(0:5, 1:3);

产生:

一个=

 0     1     2     3     4     5
 0     1     2     3     4     5
 0     1     2     3     4     5

b =

 1     1     1     1     1     1
 2     2     2     2     2     2
 3     3     3     3     3     3

现在我想以某种方式将它们放入一个字符串单元格中:

参数 = {'-a 0 -b 1'; -a 0 -b 2'; ETC...}

我尝试使用sprintf,但这只会连接它们

sprintf('-a %f -b %f', a ,b)

ans =

-a 0.000000 -b 0.000000-a 0.000000 -b 1.000000-a 1.000000 -b 1.000000-a 2.000000 -b 2.000000-a 2.000000 -b 3.000000-a 3.000000 -b 3.000000-a 4.000000 -b 4.000000-a 4.000000 -b 5.000000-a 5.000000 -b 5.000000-a 1.000000 -b 2.000000-a 3.000000 -b 1.000000-a 2.000000 -b 3.000000-a 1.000000 -b 2.000000-a 3.000000 -b 1.000000-a 2.000000 -b 3.000000-a 1.000000 -b 2.000000-a 3.000000 -b 1.000000-a 2.000000 -b 3.000000

除了循环a和之外b,我如何创建所需的单元格?

4

2 回答 2

3

你可以试试这个,使用INT2STRSTRCAT函数:

params = strcat({'-a '},int2str(a(:)),{' -b '},int2str(b(:)));
于 2010-03-02T21:05:59.930 回答
2

一个稍微简单的解决方案:

strcat(num2str([a(:) b(:)],'-a %d -b %d'), {})
于 2010-03-02T22:08:54.733 回答