在一个case里面需要大量格式化生成字符串,故整理了一下这方面的内容
常见的有三种方法:向量拼接、strcat函数和sprintf函数
1、向量拼接
在matlab中字符串本质上也是一个向量,可以通过矩阵运算来实现字符串的拼接,这里随便输入两个字符串a1和b1,用矩阵形式进行拼接:
a1 = 'I love';
b1 = ' Matlab';
c1 = [a1,b1];结果为:
c1 =
'I love Matlab'
可以按要求更改a1 b1的顺序,如果要a1和b1分开的话,可在a1最后加个空格或者在b1前加空格,也可用此方法生成路径,比如:
a = 'C:\User';
b = 'Matlab';
c = [a,'\',b];c =
'C:\User\Matlab'对于处理批量数据且文件名有公共部分时,此方法更为便利。
2、strcat函数
strcat方法用于水平串联字符串。
s = strcat(s1,...,sN) 水平串联 s1,...,sN。每个输入参数都可以是字符数组、字符向量元胞数组或字符串数组。
对于字符数组输入,strcat 会删除尾随的 ASCII 空白字符:空格、制表符、垂直制表符、换行符、回车和换页符。对于元胞数组和字符串数组输入,strcat 不删除尾随空白。
s1 = 'Good';
s2 = 'morning';
s = strcat(s1,s2)s =
'Goodmorning's1 = {'abcde','fghi'};
s2 = {'jkl','mn'};
s = strcat(s1,s2)
s = 1x2 cell
{'abcdejkl'} {'fghimn'}firstnames = {'Abraham'; 'George'};
lastnames = {'Lincoln'; 'Washington'};
names = strcat(lastnames, {', '}, firstnames)3、sprintf函数拼接
>> c1 = sprintf('%s%s',a1,b1)
c1 =
'I love Matlab'可以按要求更改a1、b1的顺序,如果要a1和b1分开的话,可在c1中两个%s之间加空格
>> c2 = sprintf('%s %s',a1,b1)
c2 =
'I love Matlab'注:
>> c2 = sprintf('%s %c %5d %8.4f',a1,"a",100,3.14159)
c2 =
'I love a 100 3.1416'字符串拼接应用场景
批量保持figure的图片到指定路径
for i = 1:10
x = 1:10;
y = rand(10,1);
figure
plot(x,y);
saveas(gcf,['G:/','test',num2str(i),'.eps'],'psc');
end