Selecting a specific part in a string array

조회 수: 3 (최근 30일)
Cem Eren Aslan
Cem Eren Aslan 2021년 12월 31일
답변: Image Analyst 2021년 12월 31일
Hello everone,
I want to wrtie a function that will separate first and last names at the input data. Input data is 30x1 cell array. It contains name and surname information. I try "split" function but some people has 2 or more names, so matlab gives size error. How can i fix it? My function as follows:
function seperation
strg = a1(:,1);
strg_cell=table2cell(strg);
i=1;
while i<31
x3(i,:)=split(strg_cell(i,1),' ');
i=i+1;
end
end

채택된 답변

Image Analyst
Image Analyst 2021년 12월 31일
@Cem Eren Aslan, try this. It will also work if there are 4 or more words in the person's name.
inputCellArray = {'Cem Eren Aslan', 'Steven MVP', 'ImageAnalyst'};
numCells = length(inputCellArray);
namesCellArray = cell(numCells, 3);
for k = 1 : length(inputCellArray)
thisCellContents = inputCellArray{k};
words = strsplit(thisCellContents);
for w = 1 : length(words)
namesCellArray{k, w} = words{w};
end
end
namesCellArray
namesCellArray = 3×3 cell array
{'Cem' } {'eren' } {'Aslan' } {'Steven' } {'MVP' } {0×0 double} {'ImageAnalyst'} {0×0 double} {0×0 double}

추가 답변 (1개)

Stephen23
Stephen23 2021년 12월 31일
tmp = split(strg_cell(i,1));
x3(i,:) = tmp([1,end]);
The MATLAB approach would be to use a simple FOR loop, rather than painfully incrementing in a WHILE loop as if this was C++.

카테고리

Help CenterFile Exchange에서 Cell Arrays에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by