MATLAB中的各种文本说明换行操作

MATLAB中的各种文本说明换行操作

在利用MATLAB画图时,我们常常会在图像中添加文本,以对具体图像进行标记或说明。 例如,给图像添加一个title,添加坐标轴说明,利用text, legend,等在图像中对具体图列添加说明等。 然而,在具体运用中,我们常常会遇到文本说明过长,或是影响图像给人的美观感受,或是超出了图像窗口,文本说明不能完全显示。如下图,

此时我们可以对文本说明进行换行操作,以解决上述问题。 说到换行,萌新小可爱们,可能会在文本说明中直接加入’ ’,

title(我是title,我太长了, 
 我都快超出图像窗口了,我该怎么办?);

然而,MATLAB并不买账,不屑地抛出一句‘你永远不懂我伤悲,像白天不懂夜地黑’。

正确操作如下: 1)在你想加入换行的地方,将原始的超长文本拆分开; 2)需要换行的地方,利用 sprintf(’ ’)表示换行操作 3)利用’ [ ] ’,将被拆分的文本以及sprintf(’ ’)拼接起来,拼接的地方记得用空格隔开。 具体如下:

title([我是title,我太长了, sprintf(
)  我都快超出图像窗口了,我该怎么办?]);

当然也可以这样:
str=[我是title,我太长了, sprintf(
)  我都快超出图像窗口了,我该怎么办?];
title(str);
任何需要对文本说明进行换行的地方,都可利用上述方法实现换行操作。例如:
figure
a=ezplot(17*x^2-16*abs(x)*y+17*y^2-225);
set(a,color,r,LineWidth,6);
str=[我是title,我太长了, sprintf(
)  我都快超出图像窗口了,我该怎么办?];
title(str);
xlabel(我是X轴,我一点也不长...);
ylabel([我是Y轴,我也超级长, sprintf(
)  我都也快超出图像窗口了,我该怎么办?]);
legend([我是legend,  sprintf(
) 下面的text都已经超出了, sprintf(
)  哈哈哈哈哈哈]);
text(3,-4,[我是text,对不起, sprintf(
) 我已经超出了, sprintf(
) 哈哈哈哈哈哈]);

可以看到,text,legend,title等都完成了换行操作。

示例代码:

clc
clear
close all
 
figure
a=ezplot(17*x^2-16*abs(x)*y+17*y^2-225);
 
set(a,color,r,LineWidth,6);
 
title(我是title,我太长了,我都快超出图像窗口了,我该怎么办?);
xlabel(我是X轴,我一点也不长...);
ylabel(我是Y轴,我也超级长,我都也快超出图像窗口了,我该怎么办?);
legend(我是legend,下面的text都已经超出了,哈哈哈哈哈哈);
text(3,-4,我是text,对不起,我已经超出了,哈哈哈哈哈哈);
 
figure
a=ezplot(17*x^2-16*abs(x)*y+17*y^2-225);
set(a,color,r,LineWidth,6);
str=[我是title,我太长了, sprintf(
)  我都快超出图像窗口了,我该怎么办?];
title(str);
xlabel(我是X轴,我一点也不长...);
ylabel([我是Y轴,我也超级长, sprintf(
)  我都也快超出图像窗口了,我该怎么办?]);
legend([我是legend,  sprintf(
) 下面的text都已经超出了, sprintf(
)  哈哈哈哈哈哈]);
text(3,-4,[我是text,对不起, sprintf(
) 我已经超出了, sprintf(
) 哈哈哈哈哈哈]);
经验分享 程序员 微信小程序 职场和发展