我试图使用此代码重新标记数字:
h=findobj(gcf,'Type','Axes','Tag','colorbar');
oldlabels = str2num(get(h,'YTickLabel'));
newlabels = sprintf('%u%%\n',oldlabels*100)
此时命令窗口中的输出看起来像所需的6x3-Char
,但它不是。相反,\n
被计为通常的字符,结果是24x1-Char
。所以当我使用
set(h,'YTickLabel',newlabels);
它显然不会起作用。有什么我可以替换\n
以便sprintf
将返回所需的数组维度吗?
以下是oldlabel的一个例子:
oldlabels =
0.1000
0.2000
0.3000
0.4000
0.5000
0.6000
答案 0 :(得分:3)
An alternative to sprintf
is to just iterate over the array:
axes
h = colorbar;
oldlabels = str2double(get(h,'YTickLabel')); %// or str2num
newlabels = arrayfun(@(x)[num2str(x),'%'],oldlabels*100,'uni',0);
set(h,'YTickLabel', newlabels);
答案 1 :(得分:2)