matlab 如何使用数字和字符串构建自定义xtickbel?

gzjq41n4  于 2022-11-15  发布在  Matlab
关注(0)|答案(2)|浏览(253)

我正在尝试将我的条形图的Xticklabels自定义为‘数字(单位)’的格式
到目前为止,我有一个向量:

scanrate = [2;4;6;8;10];

我希望我的条形图有一个x轴:

2mv/s 4mv/s 6mv/s 8mv/s 10mv/s

如果我使用xticklabels(num2str(scanrate)),则将xticklabels更改为scanrate向量中的数字。我想在每个Xtick之后加上Mv/s。

weylhg0b

weylhg0b1#

您还可以使用strcat

xticklabels(strcat(num2str(scanrate),' mv/s'))

请注意,只有当scanrate是列向量时,它才起作用。
有趣的事实:

num2str(scanrate) + " mv/s"

也很管用,但是

num2str(scanrate) + ' mv/s'

voj3qocg

voj3qocg2#

使用sprintf()构建字符串,其中%d标志表示无符号整数:

my_labels = {};
for ii = 1:numel(scanrate)
    my_labels{ii} = sprintf('%dmv/s', scanrate(ii));
end

figure;
% (...) make your plot
xticklabels(my_labels)

另一种俏皮话,多亏了沃尔夫的评论:

my_labels = arrayfun(@(x)sprintf('%dmv/s',x),scanrate,'uni',0);

附注:在创建这种类型的情节时,通常不会这样做。你只需要在轴上有数字和一个标签,上面写着“速度[mv/s]”,而不是在每个刻度标签上都有单位。

相关问题