我有变量 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实现这一点?
方法一:
如果要将两个字符串组合在一起,请使用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)
尝试上面的方法,看看会发生什么!