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

2 ビュー (過去 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 ExchangeWorkspace Variables and MAT-Files についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by