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'

等...

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

そして今、私はどういうわけかこれらを文字列のセルに入れたいと思います:

params = {'-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

ループする以外ab、どのようにして目的のセルを作成できますか?

4

2 に答える 2

3

INT2STRおよびSTRCAT関数を使用して、これを試すことができます。

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 に答える