matlab连接两个字符串,matlab字符串连接(多个字符串)的经验

参考 matlab中字符串连接的3种方法  文章,实验遇到的一些小白问题,如有问题希望大神们给予指导。

Matlab中,两个或多个字符串连接常用的三种方法,如下:

背景知识:

1、char 和 string 区别

从定义的角度来说,单引号‘ ’定义的为char类型,双引号“ ”定义的为string类型。

2、字符串数组(char)和字符串(string)区别

字符串数组就相当于数据类型为char的矩阵或向量,用单引号创建,可以索引。

string相当于一个类,用string()函数创建实例对象,所以有一些函数可以对string进行操作。

方法一:[str1,str2]

字符串数组(char类型)的连接

假设两个char类型

str1 =  'save ';

str2 =  '.mat uData';

>> [str1,str2]

ans =

'save .mat uData'

假设两个char类型和一个string类型

str1 =  'save ';

str2 =  '.mat uData';

str3 = "000";

>> [str1,str3,str2]

ans =

1×3 string 数组

"save " "000" ".mat uData";

输出的结果变成string数组,因此可知string优先级高于char的优先级。

如果考虑利用char()函数对结果进行处理会如何?

>> char([str1,str3,str2])

1×10×3 char 数组

ans(:,:,1) =

'save '

ans(:,:,2) =

'123 '

ans(:,:,3) =

'.mat uData'

得到一个三维的char类型的矩阵(不知为何有三维,第二、三维分别表示最长字符串的长度10和所要拼接的字符串的数3量)。

因此,[str1,str2,...]的方法是将非char类型的数据转换成char的类型,然后再使用该方法则可以得到char类型的输出结果。

>> [str1, char(str3), str2]

ans =

'save 000.mat uData'

方法二:strcat函数

实质上,strcat函数的方法是在string数据类型进行字符拼接,然后将最后的结果转换成类型char的字符串。

下面介绍该方法的一个问题:

str1 =  'save '; %请注意后面的空格

str2 =  '.mat uData';

str3 = "000";

>> char(strcat(str1, str3, str2))

ans =

'save000.mat uData' %请注意后面的空格已丢失

分析后,发现在strcat中会出现该情况,可能是在连接过程中会将空格删除掉,如果是string类型,则不会丢失,如下方法1.

>> char(strcat("save ", str3, str2))

或者

>> char(strcat('save'," ", str3, str2))

ans =

'save 000.mat uData'

上述两种方法输出正常。值得注意的是,方法2,空格需要采用双引号,这是因为strcat函数在连接字符串主要注意空格的转义方面的知识(现在不太了解,望见谅)

方法三:sprintf函数

>> sprintf('%s%s%s', str1, str3, str2)

ans =

'save 000.mat uData'

该方法至今没有发现问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值