0

軸の目盛りラベルをドル($)で表したいのですが。

私はもう試した:

%set(gca, 'ZTickLabel', sprintf('$%d|', get(gca,'ZTickLabel')));

これは、グラフを回転させると機能しません(これにより、グラフが引き伸ばされ、目盛りが追加されます。

また、を使用して通貨に変換しようとしましたcur2strが、それも機能しません。

助けてください!

4

1 に答える 1

3

未定義の動作が発生する理由XTickLabelは、文字配列であるためです。

>> labels = get(gca,'XTickLabel');
>> class(labels)

ans =

char

sprintfこれをのフォーマット指定子に渡すと%d、文字の配列ではなく1つの10進数が必要になるため、文字を整数表現に変換して出力します。

これを確認するには、次を試してください。

>> sprintf('%d','1')

ans =

49

あなたが本当にやりたいのは、文字配列を文字配列のように扱うことです。

>> labels = get(gca,'XTickLabel')

labels =

0
1
2
3
4
5
6
7

>> dollar_signs = repmat('$',size(labels,1),1)

dollar_signs =

$
$
$
$
$
$
$
$

>> new_labels = [dollar_signs labels]

new_labels =

$0
$1
$2
$3
$4
$5
$6
$7

>> set(gca,'XTickLabels',new_labels)

これはあなたが望む効果を持っています:

ここに画像の説明を入力してください

于 2012-04-10T18:07:12.597 に答える