我在不同的单元格(主要是字符串)中有数据,我想将一些数据放在一个单元格中,并保留其余的数据。
例如:
A = {'1' '2' '3' '4' '5'; '6' '7' '8' '9' '10'; '11' '12' '13' '14' '15'};
所需的输出应为:
B = {'1' '2' '3 4 5'; '6' '7' '8 9 10'; '11' '12' '13 14 15'};
数字必须用空格分隔。
答案 0 :(得分:1)
在16b中使用字符串和连接比使用strjoin更容易,因为连接使用矩阵的维数。
>> A = string({'1' '2' '3' '4' '5'; '6' '7' '8' '9' '10'; '11' '12' '13' '14' '15'});
>> [A(:,1:2) join(A(:,3:end),2)]
ans =
3×3 string array
"1" "2" "3 4 5"
"6" "7" "8 9 10"
"11" "12" "13 14 15"
答案 1 :(得分:0)
c{1} = 'a'
c{2} = 'b'
c{3} = 'c'
>> c{2} = 'b'
c =
'a' 'b' 'c'
>> {char(c)'}
ans =
'abc'
>> {strjoin(c, ' ')}
ans =
'a b c'
答案 2 :(得分:0)
使用strjoin方法。
strjoin(A(1,1:3))
returns '1 2 3'
//自动拥有空格。
此MATLAB方法默认为空间分隔符。然而.... 如果您需要额外的分隔符,请使用此
strjoin(A(1,1:3),'*')
returns '1*2*3'
B = A(:,1:2);
for count = 1:size(A)
B(count,3)=cellstr(strjoin(A(count,3:5)));
end
这就是我在上面做你想做的事情。
答案 3 :(得分:0)
以防任何人在R2013a(没有strjoin()
)或R2013b(没有join()
)之前有MATLAB:
% The original
A = { '1' '2' '3' '4' '5'
'6' '7' '8' '9' '10'
'11' '12' '13' '14' '15'};
% The new
B = A;
B(:,3) = strcat(arrayfun(@(ii) sprintf('%s ', B{ii,3:end-1}), 1:size(B,1), 'UniformOutput', false)', ...
B(:,end));
B(:,4:end) = []
这非常难看,只能作为strjoin()
:)的辩护