How to create a vector in Matlab
Show older comments
1 -> I need to create a vector in Matlab that goes from 1 to 500 and has 0.00462962962962962962962962962963 of interval between each element. How do i do that?
2 -> I need to insert tree zeros between every 5 positions of a vector. For example:
v = [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15...]
I need:
t = [1 2 3 4 5 0 0 0 6 7 8 9 10 0 0 0 11 12 13 14 15...]
Thanks in advance
Answers (1)
For the first part:
x=1:1/216:500;
for the second part, what exactly do you need the spaces for? The extra spaces don't actually do anything. Are you trying to create a numeric vector with spaces, or is this for display only?
7 Comments
Jórdan Venâncio Leite
on 12 Apr 2021
Edited: Jórdan Venâncio Leite
on 12 Apr 2021
If the blocks only need to be zeros:
clf
x = 1:23
n = 5; % number of elements btw zero-blocks
nz = 3; % number of zeros per block
nblocks = floor(numel(x)/n);
y = zeros([1 numel(x)+nblocks*nz]);
xx=1:numel(y);
width=n+nz;
idx = mod((xx-1),width) <= (n-1);
y(idx) = x;
y
or more generally for any predefined block:
clf
x = 1:23
n = 5; % number of elements btw zero-blocks
bk = [100 100 100]; % block to insert
nblocks = floor(numel(x)/n);
y = zeros([1 numel(x)+nblocks*numel(bk)]);
xx=1:numel(y);
width=n+numel(bk);
idx = mod((xx-1),width) <= (n-1);
y(idx) = x;
y(~idx) = repmat(bk,[1 nblocks]);
y
Jórdan Venâncio Leite
on 13 Apr 2021
Edited: Jórdan Venâncio Leite
on 13 Apr 2021
DGM
on 13 Apr 2021
I don't really know either. If you need a 1:1 ratio of data and zeros, then inserting 3 for every 5 elements isn't going to achieve that. The above methods can be adjusted to insert a string of N zeros every N elements. That would give you 1:1, but I don't know what N you would want or why.
I don't know if you intend to insert those zeros or replace data with zeros, and I don't know what the motivation is either.
Jórdan Venâncio Leite
on 13 Apr 2021
Edited: Jórdan Venâncio Leite
on 13 Apr 2021
DGM
on 13 Apr 2021
Then set n=1080 and nz=1080, run that on your y-data.
For the x-data, the timesteps are all identical, so you'll have to decide whether you want to extend the timebase or make the timestep shorter.
You'll have to decide what the relationship between x and y is going to be if you insert a bunch of artificial samples into the dataset.
Jórdan Venâncio Leite
on 13 Apr 2021
Categories
Find more on Annotations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!