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

1 回表示 (過去 30 日間)
Tuncay Eren
Tuncay Eren 2018 年 3 月 28 日
コメント済み: David Fletcher 2018 年 3 月 28 日
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 日
>> 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 日
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

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

カテゴリ

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by