Replicating values a certain number of times
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Muneer
am 3 Dez. 2013
Beantwortet: Andrei Bobrov
am 3 Dez. 2013
Hello, I have a long array of data from 0 to 1959 in steps of 1. Is there any way to expand that data so that each value repeats x number of times? ie. if x is 4
new = 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3...
I have compressed data and I want to be able to expand it with this approximation.
Thanks for your help!
0 Kommentare
Akzeptierte Antwort
Wayne King
am 3 Dez. 2013
Bearbeitet: Wayne King
am 3 Dez. 2013
There are a number of ways to do this.
One way use a constant interpolator:
x = 0:9;
h = ones(4,1);
xnew = zeros(40,1);
xnew(1:4:end) = x;
y = filter(h,1,xnew);
Another way use repmat()
x = (0:9)';
x = (repmat(x,1,4))';
x = reshape(x,40,1);
0 Kommentare
Weitere Antworten (2)
Andrei Bobrov
am 3 Dez. 2013
Jos (10584)'s idea:
k = 1959;
n = 4;
x = floor((0:(k+1)*n-1)/n);
0 Kommentare
Siehe auch
Kategorien
Mehr zu Operating on Diagonal Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!