Indexing sections of arrays

4 Ansichten (letzte 30 Tage)
Mohammed Kagalwala
Mohammed Kagalwala am 23 Okt. 2019
Is there an easy way to extract every section's of n elements of a vector in MATLAB and skip the next n? Say we have
x = linspace(1,10,10); %[1 2 3 4 5 6 7 8 9 10]
I wish to index such that I grab 1,2,3 then skip 4,5,6 and again grab 7,8,9. For example,
a = zeros(1,10); % [0 0 0 0 0 0 0 0 0 0]
a(magic index) = x(magic index)
So now a = [1 2 3 0 0 0 7 8 9 0]
I've only been able to find how to get every nth element but not chunks of n elements.
Thank you for your help in advance !
  2 Kommentare
Jan w
Jan w am 23 Okt. 2019
Define the indices you wish to extract
a = [1,2,3,7,8,9];
Now redefine your vector
x = x(a);
Is this what you mean?
Mohammed Kagalwala
Mohammed Kagalwala am 23 Okt. 2019
Not exactly. I don't want a vector [1,2,3,7,8,9]. I want my 'a' vector to be [1 2 3 0 0 0 7 8 9 0]. Jos's answer below works as I wish !

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Jos (10584)
Jos (10584) am 23 Okt. 2019
Bearbeitet: Jos (10584) am 23 Okt. 2019
x = 101:110
n = 3
tf = mod(0:numel(x)-1, 2*n) < n
a = zeros(size(x))
a(tf) = x(tf)
index = find(tf)

Weitere Antworten (0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by