代码之家  ›  专栏  ›  技术社区  ›  Nathan Fellman

如何在matlab中从网格网格中创建字符串单元格?

  •  3
  • Nathan Fellman  · 技术社区  · 15 年前

    我有一个将参数作为文本字符串的库函数(它是一个带有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'
    

    等。。。

    我正在创造 a b 具有 meshgrid :

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

    其产生:

    A=

     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';等…

    我试过用 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
    

    除了循环 ,如何创建所需的单元格?

    2 回复  |  直到 15 年前
        1
  •  3
  •   gnovice    15 年前

    你可以试试这个,用 INT2STR STRCAT 功能:

    params = strcat({'-a '},int2str(a(:)),{' -b '},int2str(b(:)));
    
        2
  •  2
  •   Amro    15 年前

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

    strcat(num2str([a(:) b(:)],'-a %d -b %d'), {})
    
    推荐文章