在matlab中将几个字符串组合成一个字符串

时间:2014-08-13 02:47:19

标签: matlab

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

'0'    '->'    '2'      '1.000000'    '1.000200'    'A-MPDU'     '1.000000'
'0'    'NO'    'NaN'    '1.000270'    '1.000570'    'BACKOFF'    'NaN'     

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

'0 -> 2 1.000000 1.000200 A-MPDU 1.000000'
'0 NO NaN 1.000270 1.000570 BACKOFF NaN'   

如何使用matlab实现这一目标?

3 个答案:

答案 0 :(得分:4)

方法1:

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

Example:

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

str =

Goodmorning

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

因此,您必须将字符串更改为:'0 ' '-> ' '2 '以获取所需的字符串。

另一种方法:

a='aaaa';
b='bb';
c=sprintf('%s %s',a,b); 

答案 1 :(得分:4)

据推测A是一个单元格数组,所以你可以将它的一行转换为一个字符数组

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

请注意,我们使用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 

尝试以上操作,看看会发生什么!

答案 2 :(得分:1)

我假设你有一个包含所有这些字符串的单元格数组A.如果是这样,那么以下应该有效。

A={'0'    '->'    '2'      '1.000000'    '1.000200'    'A-MPDU'     '1.000000';
   '0'    'NO'    'NaN'    '1.000270'    '1.000570'    'BACKOFF'    'NaN'}

concatenatedCell= {[A{1,:}];[A{2,:}]}

输出:

'0->21.0000001.000200A-MPDU1.000000'
'0NONaN1.0002701.000570BACKOFFNaN'

您将看到此处缺少空格(与您的输出相比)。它们不会出现在输出中,除非:1。它们在您的输入字符串中或2.在连接时将其插入字符串中(稍微困难)。