在matlab中将多个字符串合并为一个字符串

bnb*_*eak 5 matlab

我有变量 A 包含几个字符串数组,如下所示:

'0'    '->'    '2'      '1.000000'    '1.000200'    'A-MPDU'     '1.000000'
'0'    'NO'    'NaN'    '1.000270'    '1.000570'    'BACKOFF'    'NaN'     
Run Code Online (Sandbox Code Playgroud)

我想将这些字符串变成一种字符串形式,如下所示:

'0 -> 2 1.000000 1.000200 A-MPDU 1.000000'
'0 NO NaN 1.000270 1.000570 BACKOFF NaN'   
Run Code Online (Sandbox Code Playgroud)

如何用matlab实现这一点?

lak*_*esh 5

方法一:

如果要将两个字符串组合在一起,请使用strcat

Example:

str = strcat('Good', 'morning')

str =

Goodmorning
Run Code Online (Sandbox Code Playgroud)

但是字符串之间需要空格:

因此,您必须将字符串更改为:'0 ' '-> ' '2 ' 以获得您想要的字符串。

另一种方法:

a='aaaa';
b='bb';
c=sprintf('%s %s',a,b); 
Run Code Online (Sandbox Code Playgroud)


小智 5

大概A是一个元胞数组,因此您可以将其一行转换为字符数组

char(cellfun(@(x)[x ' ']',C(1,:),'UniformOutput',false))'
Run Code Online (Sandbox Code Playgroud)

请注意,我们用于cellfun将匿名函数应用于元胞数组的每个字符数组(元素)。该函数向字符数组附加一个空格(即“0”变为“0”),然后我们转置该结果以获得一列。我们对每个元素执行此操作,以便最终结果是一列字符,我们对其进行最终转置以获取字符串。

例如

>> char(cellfun(@(x)[x ' ']',C(1,:),'UniformOutput',false))'

   ans =
         0 -> 2 1.000000 1.000200 A-MPDU 1.000000 

>> char(cellfun(@(x)[x ' ']',C(2,:),'UniformOutput',false))'

   ans =
         0 NO NaN 1.000270 1.000570 BACKOFF NaN 
Run Code Online (Sandbox Code Playgroud)

尝试上面的方法,看看会发生什么!