Removing a bunch of elements from a 1-D vector?
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Dheeraj Kapur
am 19 Jan. 2016
Bearbeitet: Stephen23
am 22 Jan. 2016
I have a large 1-D vector and want to delete ten consecutive elements after the first or second or third one (depending on the signal undergoing processing). For example if my starting vector is x = [1,2,3,4,5,6,7,8,9,10,11........10,000], I want to create another vector which looks like: y = [1,(delete ten elements),12, (delete ten elements),23,(delete ten elements),34,....]. What is the best way to do such an operation?
0 Kommentare
Akzeptierte Antwort
Stephen23
am 22 Jan. 2016
Bearbeitet: Stephen23
am 22 Jan. 2016
>> X = randi(9,1,23)
X =
3 5 4 4 5 7 8 9 2 4 3 3 2 6 7 5 9 1 8 2 9 4 1
>> start = 3;
>> step = 5;
>> X(start:step:end)
ans =
4 9 2 1 1
Or for the original example:
>> Y = 1:10000;
>> start = 3;
>> step = 11;
>> Y(start:step:end)
ans =
Columns 1 through 14:
3 14 25 36 47 58 69 80 91 102 113 124 135 146
etc
Note that using indexing actually selects the values from the input vector.
Weitere Antworten (1)
Stalin Samuel
am 19 Jan. 2016
x = [1:1000];
gap = 10;%no of elements to be deleted
y = [min(x):gap+1:max(x)]
2 Kommentare
Stephen23
am 22 Jan. 2016
Bearbeitet: Stephen23
am 22 Jan. 2016
@Dheeraj Kapur: this does not actually answer your question, because it does not select elements of the input vector as your original question requests, but instead creates an entirely new vector using the colon operator. This method will fail completely for any vector that is not a sequential sequence of integers with a step of one.
If you want a solution that actually selects elements of the input vector, regardless of their values, then see my answer. My method actually answers your question.
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!