create vector from each element it had

Hi
Lets say I have a vector that goes: [x y z]
Im trying to create, if possible without a loop, the following vec: [1:x, 1:y, 1:z]
only I don't know who x y or z will ne, or how many elemnts will the first vec have

2 commentaires

What's wrong with your solution:
[1:x, 1:y, 1:z]
?
Maya Harel
Maya Harel le 9 Juin 2020
the problem is that I don't define how many elements the first vec will have, It will ne detarmined randomly

Connectez-vous pour commenter.

 Réponse acceptée

Stephen23
Stephen23 le 9 Juin 2020
Modifié(e) : Stephen23 le 9 Juin 2020
Method one: nonzeros:
vec = [x,y,z];
tmp = 1:max(vec);
new = nonzeros((tmp(:)<=vec).*tmp(:)).' % requires >=R2016b
Method two: arrayfun:
new = cell2mat(arrayfun(@(n)1:n,vec,'uni',0))

Plus de réponses (1)

David Hill
David Hill le 9 Juin 2020
Modifié(e) : David Hill le 9 Juin 2020
Misread

1 commentaire

Maya Harel
Maya Harel le 9 Juin 2020
thank you, but I think I didn't make myself clear, I mean that I want the new vec to go like the following exemple:
oldVec = [3,4,2]
newVec = [1,2,3,1,2,3,4,1,2]

Connectez-vous pour commenter.

Catégories

En savoir plus sur App Building dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by