Sequence within a sequence
조회 수: 2 (최근 30일)
이전 댓글 표시
Hi I want to be able to create a sequence as such
j=1111,2222,3333,4444
It is for use in a loop where j will jump up by 1 for every forth value of i.
thanks
댓글 수: 0
채택된 답변
Wayne King
2012년 3월 28일
Another way (you need Signal Processing Toolbox)
x = 1:4;
y = upsample(x,4);
h = ones(4,1);
y = filter(h,1,y);
댓글 수: 3
Daniel Shub
2012년 3월 28일
Despite my answer being faster (and I think simpler), I like your answer better from a theoretical vantage.
추가 답변 (3개)
Dr. Seis
2012년 3월 28일
To beat a dead horse...
I thought I remembered a version by Walter using cumsum, but I couldn't find the link. Here's my attempt to recreate:
n = 5;
m = 3;
a = zeros(m,n);
a(1,:) = 1;
b = cumsum(reshape(a,1,numel(a)));
Running Daniel's test, I got ~0.65 seconds and ~1.05 seconds for the reshape&cumsum and repmat&reshape versions, respectively. However, what you save in compute time is eaten up by doing extra typing.
댓글 수: 1
Daniel Shub
2012년 3월 28일
+1 I knew my answer wouldn't be the fastest. Not only do you have a faster answer, but you also have a faster computer (your answer is faster on my computer also).
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!