Indexing sections of arrays

4 ビュー (過去 30 日間)
Mohammed Kagalwala
Mohammed Kagalwala 2019 年 10 月 23 日
コメント済み: Mohammed Kagalwala 2019 年 10 月 23 日
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 件のコメント
Jan w
Jan w 2019 年 10 月 23 日
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 2019 年 10 月 23 日
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 !

サインインしてコメントする。

採用された回答

Jos (10584)
Jos (10584) 2019 年 10 月 23 日
編集済み: Jos (10584) 2019 年 10 月 23 日
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)
  1 件のコメント
Mohammed Kagalwala
Mohammed Kagalwala 2019 年 10 月 23 日
Thank you ! Works perfectly :)

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by