我希望轴上的刻度标记以美元 ($) 表示。
我试过了:
%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
's%d
格式说明符时,它需要一个十进制数字 - 而不是字符数组 - 因此它将字符转换为它们的整数表示并打印出来。
要看到这一点,请尝试:
>> 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)
这有你想要的效果: