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

在matlab中将多个字符串组合成一个字符串,matlab,Matlab,我有一个包含多个字符串数组的变量,如下所示: '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'    '->'    '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实现这一点

方法1:

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

但字符串之间需要空格:

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

另一种方法:

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

大概
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 

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

我假设您有一个包含所有这些字符串的单元格数组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中。连接时将其插入字符串中(有点困难)。

但是在我的变量中没有','所以当我使用strcat时,没有不同的结果。是否可以使用该命令同时处理这两行?因为稍后我将处理许多行,如果您尝试一次处理所有行,那么您只会得到一个字符串(您可以将其分解为多个字符串)。
'0->21.0000001.000200A-MPDU1.000000'
'0NONaN1.0002701.000570BACKOFFNaN'