Trying to select multiple sections in an array where the sections are separated by constant size

4 Ansichten (letzte 30 Tage)
Let's say that I have an array of size 24, i.e arr=zeros(1,24). Now, let's say that I wan't to set indices [5,6,7,8] and [13,14,15,16] and [21,22,23,24] to 1. So how can I address these array sections without loops? I know that I can write: arr([5:8, 13:16, 21:24]) by hand, but what if the array size is unknown, and I wan't to write it in compact way. Thanks

Akzeptierte Antwort

Stephen23
Stephen23 am 26 Mär. 2018
Bearbeitet: Stephen23 am 26 Mär. 2018
>> arr = zeros(8,3); % or use reshape
>> arr(5:8,:) = 1;
>> arr = reshape(arr,1,24)
arr =
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
Or
>> arr = repmat([0,0,0,0,1,1,1,1],1,3)
arr =
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by