exclude some elements in array

79 visualizzazioni (ultimi 30 giorni)
Rica
Rica il 31 Mag 2021
Risposto: Rica il 31 Mag 2021
Hi all,
how could i exclude the bold number from this arry. The array is large but it shows the structure that after each 5 element, 3 element should be excluded.
Thank you!
2.70850000000000
2.63220000000000
2.25820000000000
2.45430000000000
2.99680000000000
-54.2462960000000
NaN
NaN
2.25420000000000
2.92210000000000
1.70920000000000
2.06580000000000
2.17260000000000
3.1726950000000
NaN
NaN

Risposta accettata

Torsten
Torsten il 31 Mag 2021
last = numel(a);
idx = [6:8:last,7:8:last,8:8:last];
a(idx) = [];

Più risposte (2)

Walter Roberson
Walter Roberson il 31 Mag 2021
a8 = reshape(a, 8, []);
a = reshape(a8(1:5,:), [], 1);
Note: Torsten's solution is more robust for the situation where the array is not an exact multiple of 8 entries.
If you have the communications toolbox, you could also use
a8 = buffer(a, 8);
a = reshape(a8(1:5,:), [], 1);
This would pad short buffers. If the missing data was in the last 3 expected entries, you would never notice the padding, but if you had a partial group of 1 to 4 elements long, then buffer() would fill out to make a full group.

Rica
Rica il 31 Mag 2021
Thank you everyone!

Categorie

Scopri di più su Linear Algebra in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by