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

14 Ansichten (letzte 30 Tage)
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.

Akzeptierte Antwort

Stephen23
Stephen23 am 25 Apr. 2018
Bearbeitet: Stephen23 am 25 Apr. 2018
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{:}].';

Weitere Antworten (0)

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by