首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Matlab字符串相关操作-拼接、格式化

Matlab字符串相关操作-拼接、格式化

作者头像
用户9925864
发布2023-03-01 19:18:52
发布2023-03-01 19:18:52
1.3K0
举报

在一个case里面需要大量格式化生成字符串,故整理了一下这方面的内容

常见的有三种方法:向量拼接、strcat函数和sprintf函数

1、向量拼接

在matlab中字符串本质上也是一个向量,可以通过矩阵运算来实现字符串的拼接,这里随便输入两个字符串a1和b1,用矩阵形式进行拼接:

代码语言:javascript
复制
a1 = 'I love';
b1 = ' Matlab';
c1 = [a1,b1];

结果为:

代码语言:javascript
复制
c1 =

    'I love Matlab'

可以按要求更改a1 b1的顺序,如果要a1和b1分开的话,可在a1最后加个空格或者在b1前加空格,也可用此方法生成路径,比如:

代码语言:javascript
复制
a = 'C:\User';
b = 'Matlab';
c = [a,'\',b];
代码语言:javascript
复制
c =

    'C:\User\Matlab'

对于处理批量数据且文件名有公共部分时,此方法更为便利。

2、strcat函数

strcat方法用于水平串联字符串。

s = strcat(s1,...,sN) 水平串联 s1,...,sN。每个输入参数都可以是字符数组、字符向量元胞数组或字符串数组。

  • 如果任一输入是字符串数组,则结果是字符串数组。
  • 如果任一输入是元胞数组,并且没有输入是字符串数组,则结果是字符向量元胞数组。
  • 如果所有输入都是字符数组,则结果是字符数组。

对于字符数组输入,strcat 会删除尾随的 ASCII 空白字符:空格、制表符、垂直制表符、换行符、回车和换页符。对于元胞数组和字符串数组输入,strcat 不删除尾随空白。

代码语言:javascript
复制
s1 = 'Good';
s2 = 'morning';
s = strcat(s1,s2)
代码语言:javascript
复制
s = 
'Goodmorning'
代码语言:javascript
复制
s1 = {'abcde','fghi'};
s2 = {'jkl','mn'};
s = strcat(s1,s2)
s = 1x2 cell
    {'abcdejkl'}    {'fghimn'}
代码语言:javascript
复制
firstnames = {'Abraham'; 'George'};
lastnames = {'Lincoln'; 'Washington'};
names = strcat(lastnames, {', '}, firstnames)

3、sprintf函数拼接

代码语言:javascript
复制
>> c1 = sprintf('%s%s',a1,b1)

c1 =

    'I love Matlab'

可以按要求更改a1、b1的顺序,如果要a1和b1分开的话,可在c1中两个%s之间加空格

代码语言:javascript
复制
>> c2 = sprintf('%s %s',a1,b1)

c2 =

    'I love  Matlab'

注:

  • %s 代表输出字符串;
  • %c 代表输出字符串;
  • %d 代表输出整型:%5d 就是说按照长度为5的整型输出,比如100,输出就是" 100"," "代表空格;
  • %f 就是输出小数:%8.4f 就是小数点后保留4位,输出总长度为8,比如3.14159,输出后就是" 3.1415"(前面三个空格);
代码语言:javascript
复制
>> c2 = sprintf('%s %c %5d %8.4f',a1,"a",100,3.14159)

c2 =

    'I love a   100   3.1416'

字符串拼接应用场景

批量保持figure的图片到指定路径

代码语言:javascript
复制
for i = 1:10
    x = 1:10;
    y = rand(10,1);
    figure
    plot(x,y);
    saveas(gcf,['G:/','test',num2str(i),'.eps'],'psc');
end
  • ‘G:/ ’ 是保存路径 ,
  • ‘test’ 是文件名前缀,
  • gcf代表保存当前图像,
  • num2str(i)表示文件名数字例如:i=1时,文件名为test1,
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-02-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法工程师的学习日志 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档