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

2 vues (au cours des 30 derniers jours)
Tuncay Eren
Tuncay Eren le 28 Mar 2018
Commenté : David Fletcher le 28 Mar 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!!

Réponse acceptée

Stephen23
Stephen23 le 28 Mar 2018
Modifié(e) : Stephen23 le 28 Mar 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 commentaires
David Fletcher
David Fletcher le 28 Mar 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 le 29 Mar 2018

Superb! Many thanks Stephan, David.

Connectez-vous pour commenter.

Plus de réponses (1)

David Fletcher
David Fletcher le 28 Mar 2018
del=[1:4 9:12 13:16]
k(del)=[]
  1 commentaire
Tuncay Eren
Tuncay Eren le 28 Mar 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

Connectez-vous pour commenter.

Catégories

En savoir plus sur Programming dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by