reshape, remove 16 elements, keep 1000*8, remove ..

5 vues (au cours des 30 derniers jours)
T
T le 25 Avr 2017
Can I solve this without a loop?/What is the fastest way? I have a long vector consisting of [16Elements 1000*8Elements 16Elements 1000*8Elements ...] With a total of N repetitions. The 16 Elements I want to remove. The remainder I would like to reshape into a matrix of size 1000xNx8 Thanks!

Réponses (1)

Guillaume
Guillaume le 25 Avr 2017
reshape into 16+1000*8 x N matrix, get rid of the first 16 rows, then reshape again. Finally a permute if you want N to be the second dimension.
tocrop = reshape(yourvector, 16+1000*8, []);
out = permute(reshape(tocrop(17:end, :), 1000, 8, []), [1 3 2])

Catégories

En savoir plus sur Creating and Concatenating Matrices 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