Expand an array by filling in with current values in MATLAB -
i have simple issue , want know if there's easy way in matlab (i.e. function rather writing out loops or myself).
let's have timeseries time 1:1:1000 , data 2 * (1:1:1000) , want expand array making time , data vector finer. let's want time 1:0.1:1000 , data 2 * (1:0.1:1000). there easy way tell matlab repeat values of each vector 10 times (from 1 / 0.1 = 10) can have this?:
time: [1, 2, 3, 4, ...]
data: [2, 4, 6, 8, ...]
to:
time: [1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, ...]
data: [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, ...]
you can use combination of reshape() , repmat() follow:
data = [2, 4, 6, 8, ...] % stated in question. data = reshape(repmat(data, 10, 1), 1, []); this more time-efficient others kron() or combination of sort() , repmat().
two simulations done , results shown in following figures.
first: simulation time vs. length of data. here used n=100 instead of 10.

second: simulation time vs. repetition factor. length of data 10000.

so can select best 1 according simulation results.
Comments
Post a Comment