軸の目盛りラベルをドル($)で表したいのですが。
私はもう試した:
%set(gca, 'ZTickLabel', sprintf('$%d|', get(gca,'ZTickLabel')));
これは、グラフを回転させると機能しません(これにより、グラフが引き伸ばされ、目盛りが追加されます。
また、を使用して通貨に変換しようとしましたcur2str
が、それも機能しません。
助けてください!
軸の目盛りラベルをドル($)で表したいのですが。
私はもう試した:
%set(gca, 'ZTickLabel', sprintf('$%d|', get(gca,'ZTickLabel')));
これは、グラフを回転させると機能しません(これにより、グラフが引き伸ばされ、目盛りが追加されます。
また、を使用して通貨に変換しようとしましたcur2str
が、それも機能しません。
助けてください!
未定義の動作が発生する理由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)
これはあなたが望む効果を持っています: