在Matlab里面如何实现字符串的拼接

2024-12-02 04:38:47
推荐回答(3个)
回答(1):

引自百度经验:

  • 使用函数blanks以生成空白字符串。参数是空格个数。

    使用中括号可以连接多个字符串。

  • strcat可以连接字符串(参数可以是字符数组或者元元素为字符串的元胞数组)

    使用strcat连接多个字符串时,会自动去除字符串尾部空格/tab等。

    但是使用strcat连接元胞数组中的字符串时,不会去除空格。

  • 使用strcat可以连接多个元胞数组,会将每个数组的对应元素相连。

    要注意的是,数组应该相同大小(其中一些可以只有一个元素)。

  • 使用strjoin可以连接一个元胞数组中的字符串(带有间隔)

    默认使用一个空格做间隔。可以通过第二个参数指定间隔字符串。

  • strjoin可以有变化的间隔字符串。

    此时两个参数均为元胞数组,第一个是待连接元胞数组(长度n),第二个是间隔字符串的元胞数组(长度n-1)

  • sprintf函数可以用来格式化字符串,用法和C类似不再赘述。

    可以有两个返回值,第二个返回值是出错信息。

  • char函数可以根据编码得到字符/字符数组。

    的输入可以是单个数字(0~65535),也可以是由前述数字组成的列表,也可以是多个列表。

    0~65535对应unicode,其中0~127也对应于7位ASCII码。

  • char函数也可以从时间类型转换得到字符数组。可以带有第二个参数:时间格式。

  • ischar函数可用来判断是否是字符数组。

  • cellstr可以将字符数组转化成元胞数组,如图。

    cellstr也有类似的从时间类型得到字符串数组(元胞数组)的功能。

  • iscellstr用来判断一个数组是不是由字符串组成的元胞数组。

    如图,A不符合因为A{2}不是字符串。但是{{A{1},A{3}}就符合。

    END

回答(2):

在Matlab中,想要将两个字符串连接在一起,有以下的方法:
假定有两个字符串
>> str1='Iloveyou';str2='123';
方法一:用中括号将str1和str2像矩阵元素一样包含起来:
>> SC=[str1,str2]

SC =

Iloveyou123

(若想验证str1和str2确实被连接起来,可调用length函数测试SC的长度。)
方法二:用strcat函数
>> SB=strcat(str1,str2)

SB =

Iloveyou123

注意,strcat函数有许多用法,如下例:
>> strcat({'Red','Yellow'},{'Green','Blue'})

ans =

'RedGreen' 'YellowBlue'

但下句则结果就不一样了:
>> strcat(['Red','Yellow'],['Green','Blue'])

ans =

RedYellowGreenBlue

方法三:利用sprintf函数

>> number=123;
>> STR=sprintf('%s%d',str1,number)

STR =

Iloveyou123

回答(3):

问题1,举例如下:
str1 = 'M01';
str2 = '_1';
str3 = [str1 str2];

问题2:
for i = 1 : 28
diff(i) = sum(sum(abs(image_comp(i,:,:) - image_ref(:,:))));
end

image_comp是待比较的图像序列矩阵
image_ref是参考图像矩阵