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

11 次查看(过去 30 天)
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

采纳的回答

Stephen23
Stephen23 2018-3-26
编辑:Stephen23 2018-3-26
>> 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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by