Can MATLAB duplicate cell array entries without creating cell within cells?

조회 수: 11 (최근 30일)
Brad
Brad 2018년 4월 25일
댓글: Brad 2018년 4월 25일
I'm attempting to duplicate cell array data (from 1 cell array) and place in a different cell array without creating cells within cells. I'm using the following code:
% Some cell array data
data = [ 'ALC238Tires'; 'ALC01A1RIPS'; 'ALC238Tires'; 'ALC01A1RIPS' ];
celldata = cellstr(data);
Total_Rows = [3;2;3;2];
% Duplicate the data based on the Total Rows values
for i = 1:length(Total_Rows)
Dup_Data = cell(Total_Rows(i), 1);
Dup_Data(:)= celldata(i);
output{i} = Dup_Data;
end
output2 = output';
This results in:
output2 =
4×1 cell array
{1×3 cell} where all 3 cells contain ALC238Tires
{1×2 cell} where both cells contain ALC01A1RIPS
{1×3 cell} where all 3 cells contain ALC238Tires
{1×2 cell} where both cells contain ALC01A1RIPS
But what I'd like is a 10 x 1 cell array of the following;
'ALC238Tires'
'ALC238Tires'
'ALC238Tires'
'ALC01A1RIPS'
'ALC01A1RIPS'
'ALC238Tires'
'ALC238Tires'
'ALC238Tires'
'ALC01A1RIPS'
'ALC01A1RIPS'
Can this be done?
Thank you.

채택된 답변

Stephen23
Stephen23 2018년 4월 25일
편집: Stephen23 2018년 4월 25일
Using repelem is much simpler:
data = {'ALC238Tires'; 'ALC01A1RIPS'; 'ALC238Tires'; 'ALC01A1RIPS'};
rows = [3;2;3;2];
repelem(data,rows)
Or using your loop output:
output2 = [output{:}].';

추가 답변 (0개)

카테고리

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

제품

Community Treasure Hunt

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

Start Hunting!

Translated by