Borrar filtros
Borrar filtros

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

1 visualización (últimos 30 días)
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.

Respuesta aceptada

Stephen23
Stephen23 el 4 de Mayo de 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 comentario
Dwight Schrute III
Dwight Schrute III el 4 de Mayo de 2019
Nimble utilization of mat2cell functionality. This works perfectly; I wish I had thought of it. Thanks for your answer, Stephen.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Multidimensional Arrays en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by