create vector from each element it had

19 vues (au cours des 30 derniers jours)
Maya Harel
Maya Harel le 9 Juin 2020
Modifié(e) : Stephen23 le 9 Juin 2020
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
TADA
TADA le 9 Juin 2020
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))
  1 commentaire
Maya Harel
Maya Harel le 9 Juin 2020
Thank You very much!!!

Connectez-vous pour commenter.

Plus de réponses (1)

David Hill
David Hill le 9 Juin 2020
Modifié(e) : David Hill le 9 Juin 2020
  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 Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by