Decide values of row in matrix for certain row intervals

2 views (last 30 days)
Hi
I need to create a matrix where each row has the values of [1,0,0,0] over certain intervals as given below
rows=150001;window=500;
res=zeros(rows-window,4);
flagstart = [11600 42410 72480 102100 132000];
flagend = [22620 52410 82550 112900 142200];
for ii = 1:numel(flagstart)
res(flagstart(ii):flagend(ii),:) = [1,0,0,0];
end
This is the code i have got so far, but it is not working when i run it.

Accepted Answer

Scott MacKenzie
Scott MacKenzie on 5 Mar 2022
rows=150001;window=500;
res=zeros(rows-window,4);
flagstart = [11600 42410 72480 102100 132000];
flagend = [22620 52410 82550 112900 142200];
for ii = 1:numel(flagstart)
n = flagend(ii) - flagstart(ii)+1;
res(flagstart(ii):flagend(ii),:) = repmat([1,0,0,0],n,1);
end

More Answers (1)

AndresVar
AndresVar on 5 Mar 2022
since you are just changing the first number, use res(a:b,1)=1

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by