Filter löschen
Filter löschen

How can I create a cell array whose elements reflect a length based on a given input vector?

1 Ansicht (letzte 30 Tage)
For example, I want to repeat the character 'b' a specified number of times based on a vector; let's say the vector is [3 2 4]. My desired output would be a 1x3 cell array with elements:
{'bbb'} {'bb'} {'bbbb'}
Ideally, I'd like to implement this without a loop. I'm sure there's some nifty Matlab function that accomplishes this, but I haven't been able to find it. repmat and repelem don't appear to be relevant for this particular application (unless I'm using them incorrectly).
Thank you.

Akzeptierte Antwort

Stephen23
Stephen23 am 4 Mai 2019
In one line:
>> V = [3,2,4];
>> S = 'b';
>> C = mat2cell(repmat(S,1,sum(V)),1,V);
>> C{:}
ans = bbb
ans = bb
ans = bbbb
  1 Kommentar
Dwight Schrute III
Dwight Schrute III am 4 Mai 2019
Nimble utilization of mat2cell functionality. This works perfectly; I wish I had thought of it. Thanks for your answer, Stephen.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Multidimensional Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by