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

1 view (last 30 days)
T
T on 25 Apr 2017
Answered: Guillaume on 25 Apr 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!

Answers (1)

Guillaume
Guillaume on 25 Apr 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])

Categories

Find more on Resizing and Reshaping Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!