create vector from each element it had

조회 수: 9 (최근 30일)
Maya Harel
Maya Harel 2020년 6월 9일
편집: Stephen23 2020년 6월 9일
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
TADA
TADA 2020년 6월 9일
What's wrong with your solution:
[1:x, 1:y, 1:z]
?
Maya Harel
Maya Harel 2020년 6월 9일
the problem is that I don't define how many elements the first vec will have, It will ne detarmined randomly

댓글을 달려면 로그인하십시오.

채택된 답변

Stephen23
Stephen23 2020년 6월 9일
편집: Stephen23 2020년 6월 9일
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개)

David Hill
David Hill 2020년 6월 9일
편집: David Hill 2020년 6월 9일
  댓글 수: 1
Maya Harel
Maya Harel 2020년 6월 9일
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]

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 App Building에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by