我的变量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实现这一目标?
答案 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.在连接时将其插入字符串中(稍微困难)。