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

6 vues (au cours des 30 derniers jours)
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

Réponse acceptée

Stephen23
Stephen23 le 26 Mar 2018
Modifié(e) : Stephen23 le 26 Mar 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

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by