Filter löschen
Filter löschen

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

1 Ansicht (letzte 30 Tage)
Tuncay Eren
Tuncay Eren am 28 Mär. 2018
Kommentiert: David Fletcher am 28 Mär. 2018
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!!

Akzeptierte Antwort

Stephen23
Stephen23 am 28 Mär. 2018
Bearbeitet: Stephen23 am 28 Mär. 2018
>> 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 Kommentare
David Fletcher
David Fletcher am 28 Mär. 2018
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 am 29 Mär. 2018

Superb! Many thanks Stephan, David.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

David Fletcher
David Fletcher am 28 Mär. 2018
del=[1:4 9:12 13:16]
k(del)=[]
  1 Kommentar
Tuncay Eren
Tuncay Eren am 28 Mär. 2018
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

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Workspace Variables and MAT-Files finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by