【Matlab】你想知道在图表标题中显示变量的一切

在这里插入图片描述

1.Introduction

有时在利用Matlab输出结果时,会通过作图(Figure),和做表(Excel)来完成。并且经常需要在标题中显示一些变量,比如下图,那么这是怎么实现的呢?能不能显示数组呢?

在这里插入图片描述

2.Materials and methods

不难发现,所谓标题其实是一个 字符串,其中有字母也有数字。那我们只需要把字母和数字拼接在一起就好了,下面试一下:

a = ['abc','d',num2str(56),'g',num2str([1,2])]
b = strcat('abc','d',num2str(56),'g',num2str([1,2]))

在这里插入图片描述
可以看到使用 strcat 函数,和使用 [ ] 进行拼接效果是一样的,其中数值型变量需要通过 num2str 转化为字符型。

在使用 num2str 函数时,如果是输入数值是行向量的话,输出是一个字符串,其中每两个字符之间会有两个空格;如果是列向量的话,每个数值转化成单独的字符;如果是矩阵的话,同理。具体看下面输出吧:

在这里插入图片描述
所以如果你要拼接的数值变量的列数>1的话,就不能用 [ ] 进行拼接,此时采用 strcat 的话,会生成多个字符串(每行一个),如下图:

在这里插入图片描述
好了,基础知识铺垫完毕(废话说完了),圆规正传,生成图表标题:

a = ['abc','d',num2str(56),'g',num2str([1,2])]
title(a)
xlswrite('a.xlsx',{a})

3. Results and discussion

看看结果~

在这里插入图片描述
这里注意,在生成表标题时,要把字符型转为 元胞型!也就是 {a},不然写入Excel时,字符串中的每个字符都会单独占一个单元格。

但是,当我们真的需要 二维数组结合字母 显示到标题,怎么办呢?

首先还是生成字符串,用上面讲的 strcat,然后再放到图表标题上,代码如下:

a = strcat('abc','d',num2str(56),'g',num2str([1;2]))
title(a)
xlswrite('a.xlsx',cellstr(a))     

在这里插入图片描述

可以看到,图和表标题均成功显示。这里注意,将字符型转元胞型时,如果是字符型矩阵的话,需要通过函数 cellstr 来实现,不能像上面直接加中括号了,即 {a}

废了这么大劲,好像实现的功能有点鸡肋~ 下面放一个我曾经用过的图标题展示方案吧,图标题换行+矩阵显示,应该还是有用的:

a = {['第一行',num2str(1)],['第二行',num2str(2)],num2str([1,2;3,4])}
title(a)

在这里插入图片描述
换行方式,如上面的代码所示,即 { [ ] , [ ] },其中,数值矩阵转为字符型后直接显示原格式,有几行就显示几行,不用手动换行。

4. Conclusion

以前每次写图表标题时,都要重新查一下语法。这次总结后,以后应该再也不用面向百度编程了。

诶?我以后好像也不怎么用Matlab了。

猜你喜欢:👇🏻
【Matlab】定义顺序增加的字符串数组(A1,A2 … An)并写到Excel的第一行
【Matlab】parfor并行运算如何显示进度条?
【Matlab】如何把数组矩阵写入txt文件?并用逗号或空格隔开

在这里插入图片描述

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值