How can I remove the ranges from a specific column vector?

Hello;
How can I remove the following ranges from the k column vector below:
k=[1 0 2 1 9 8 0 0 4 2 3 3 5 1 1 0 3 2].' ;
ranges to be removed from k column vector are as;
range1=k(1:4); range1=k(9:12); range1=k(13:16);
Thanks in advance!!

 採用された回答

Stephen23
Stephen23 2018 年 3 月 28 日
編集済み: Stephen23 2018 年 3 月 28 日

2 投票

>> vec = [1;0;2;1;9;8;0;0;4;2;3;3;5;1;1;0;3;2;0;0;0;0;0;0];
>> tmp = reshape(vec,12,[])
tmp =
1 5
0 1
2 1
1 0
9 3
8 2
0 0
0 0
4 0
2 0
3 0
3 0
>> tmp(1:4,:) = []
tmp =
9 3
8 2
0 0
0 0
4 0
2 0
3 0
3 0
>> tmp(:)
ans =
9
8
0
0
4
2
3
3
3
2
0
0
0
0
0
0

2 件のコメント

David Fletcher
David Fletcher 2018 年 3 月 28 日
Neat. Easily beats my solution.
a=1:4
b=0:12:N;
c=a+repmat(b,4,1)';
del=reshape(c',1,numel(c))
k(del)=[]
Tuncay Eren
Tuncay Eren 2018 年 3 月 29 日

Superb! Many thanks Stephan, David.

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

その他の回答 (1 件)

David Fletcher
David Fletcher 2018 年 3 月 28 日

1 投票

del=[1:4 9:12 13:16]
k(del)=[]

1 件のコメント

Tuncay Eren
Tuncay Eren 2018 年 3 月 28 日
Thanks David.
İf k is a data vector as 1024x1, then how can we make it as a general formula to remove consecutive 4 bits and then keep 8 consecutive bits, then again remove 4 bits and keep 8 bits...
N=1024;
k=randi([0 1],N,1);
k_remove1=k(1:4);
k_remove2=k(13:16);
k_remove3=k(25:28);
.
.
.
Thanks

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

カテゴリ

ヘルプ センター および File ExchangeEntering Commands についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by