1

を使用している間、私は別に、このようにそれらを連結するとき、私は、文字列を連結しようとしている:の連結文字列フィギュアコマンド(MATLAB)

strcat({'Plot of f with a plot of iterates for c='},{int2str(c)}) 

エラーが来ることはありません。

しかし、私はこのように図のコマンドでそれらを使用しよう:

figure('Name',strcat({'Plot of f with a plot of iterates for c='},{int2str(c)})) 

私はこのエラーが表示されます。

Error using figure 
Value must be a string 

このための任意の理由は?

+4

データ型に注意する必要があります。 'strcat'の出力は、セルを渡しているので、ここではセルです。セルは文字列ではありません。ここでは 'strcat'に細胞を渡す理由はありません。 – excaza

+1

@excazaが言ったように。 'strcat'は必要ありません。暗黙的に連結を使うことができます:' str = ['c ='、int2str(c)] 'の反復のプロットを持つfのプロット。 –

答えて

2

が@Matthias Wによって指摘されているように、strcat({'Plot of f with a plot of iterates for c='},{int2str(c)})の出力は1x1 cellであり、期待通りの文字列はfigure()です。

文字列の連結のために[] Sを使用して、次の

figure('Name',['Plot of f with a plot of iterates for c=', int2str(c)])

1

を試してみては素晴らしい短いソリューションです。すでに変換をやっているので、あなたもsprintfを学ぶ検討するかもしれない:

figure('Name', sprintf('Plot of f with a plot of iterates for c = %d.\n', c)); 

これは、この例ではやり過ぎかもしれませんが、あなたが値の数をプリントアウトする必要がある場合、それ価値があるかもしれ、またはそれ以上を望みます数字の表示方法を制御します。