repeating an index number n times in a vector

Hi People,
I'd like to transform a vector p like this one. p=[3 0 2 2 1 0 3]
Into a new vector that has n times the indexnumber of n, for example:
new vector: v=[1 1 1 3 3 4 4 5 7 7 7] so it has 3 times 1, zero times 2, 2 times 3 and so on.
the numbers generated in p are variable but are always between 0 and 15
I hope you can help me.
Regards, Siem

 채택된 답변

Amit
Amit 2014년 1월 23일

0 개 추천

v = [];
count = 1;
for j = 1:length(p)
if p(j) ~= 0
v(count:count+p(j)-1) = j*ones(p(j),1);
count = count + p(j);
end
end

댓글 수: 1

Hi Amit,
Thank you so much this has been driving me crazy but your solution works perfectly.
Regards, Siem

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

추가 답변 (1개)

Chris
Chris 2014년 1월 23일

0 개 추천

Hey Siem,
I would do it like this:
v = p .* 1:length(p);

댓글 수: 1

Hi Cris,
Thanks for answering my question, unfortunately your solution didn't work.
Regards, Siem

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

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

질문:

2014년 1월 23일

댓글:

2014년 1월 23일

Community Treasure Hunt

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

Start Hunting!

Translated by