Remove slices of 3D matrix

6 Ansichten (letzte 30 Tage)
Erfaneh
Erfaneh am 6 Sep. 2014
Kommentiert: Erfaneh am 6 Sep. 2014
I have a binary 3D matrix with 400 slices. I want to remove the slices (0 to 100) and (300 to 400) and I just want to keep the slices (100 to 300). I used from following code for removing 100 first slices:
  • for i=1:100
  • A(:,:,i)=[];
  • end
But above syntax code didn't remove 100 first slices, it removed 100 slices but not from the first. Can any one tell me where is the problem?

Akzeptierte Antwort

Roger Stafford
Roger Stafford am 6 Sep. 2014
Bearbeitet: Roger Stafford am 6 Sep. 2014
That is because after removing the first "slice", slice number 2 becomes number 1 and when you attempt to remove slice 2 it is actually the original slice 3 that is taken out. In other words in terms of original slice numbers you are removing the first 100 odd-numbered slices, 1,3,5,7,.... Also the slice numbers you quote are inconsistent - there are 101 slices in 0 to 100 and 300 to 400 and you would have 201 left in 100 to 300. Also there is no slice 0 in terms of index numbers.
I'll assume you want to remove the first and last 100 leaving the middle 200. Do this:
A(:,:,[1:100,301:400]) = [];
  1 Kommentar
Erfaneh
Erfaneh am 6 Sep. 2014
Thank you very much. My problem has been solved.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Image Processing Toolbox finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by