How to split characters of a cell/string in matlab?

조회 수: 3 (최근 30일)
Ivan Mich
Ivan Mich 2023년 3월 3일
댓글: Stephen23 2023년 3월 4일
I have a question about a code. I have a string array and I would like to split it into pairs, depending the number of elements.
for example I have string 'CHARLES'. I would like to have a cell array with the elements C={CH, HA, AR, RL, LE, ES}. (I mean one cell array with 1x6 (length-1) dimensions)
my code is:
g='CHARLES'
length(g)
for i=1:(length(g)-1)
C=horzcat(g(i),g(i+1))
%charArray(i) = [AL(i){:}]
end
How must I modify my code? Could you please help me?

채택된 답변

Voss
Voss 2023년 3월 3일
g='CHARLES';
C = cellstr([g(1:end-1); g(2:end)].').'
C = 1×6 cell array
{'CH'} {'HA'} {'AR'} {'RL'} {'LE'} {'ES'}
  댓글 수: 2
Ivan Mich
Ivan Mich 2023년 3월 4일
편집: Ivan Mich 2023년 3월 4일
ok thank you @Voss. One more question. How could I use this command for a cell array?
I mean I have a cell array (2000x1 dimensions) and I want to use this command for each element of this array?
I write this code
for i=1:numel(g)
C(i) = cellstr([g(i)(1:end-1); g(i)(2:end)].').'
end
but no use...
Could you pelase help me?
Stephen23
Stephen23 2023년 3월 4일
Use curly braces to access the content of cell arrays, not parentheses:
C = {'charles','hello','world'};
for k = 1:numel(C)
C{k} = cellstr([C{k}(1:end-1); C{k}(2:end)].').';
end
Checking the content:
C{:}
ans = 1×6 cell array
{'ch'} {'ha'} {'ar'} {'rl'} {'le'} {'es'}
ans = 1×4 cell array
{'he'} {'el'} {'ll'} {'lo'}
ans = 1×4 cell array
{'wo'} {'or'} {'rl'} {'ld'}
The ways to access cell arrays are explained here:

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Data Type Identification에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by