I have a 3D volume mask_GTV (256x256x137) and I want to plot 3 different slices: XY,YZ,XZ.
Currently I use permute [1 3 2] for the XZ plane for example.
G = permute(mask_GTV,[1 3 2));
contour(G(:,:,120),[.5 .5])
The dimensions in this plot are different from what I expect. I would expect this to be a 256x137 plot, but it is 137x256.
How can I plot the correct slice?

답변 (2개)

James Tursa
James Tursa 2018년 5월 30일
편집: James Tursa 2018년 5월 30일

0 개 추천

According to the doc for contour(Z), "... The x values correspond to the column indices of Z and the y values correspond to the row indices of Z ..."
So if you want the other order, do a different permute to account for it. E.g.,
G = permute(mask_GTV,[3 1 2));
Anton Semechko
Anton Semechko 2018년 5월 30일
편집: Anton Semechko 2018년 5월 30일

0 개 추천

Suppose you have G, which is a Y-by-X-by-Z 3D array, then
i-th xy slice:
G_yx=G(:,:,i); % Y-by-X array
i-th xz slice:
G_xz=permute(G(i,:,:),[2 3 1]); % X-by-Z array
i-th yz slice:
G_yz=permute(G(:,i,:),[1 3 2]); % Y-by-Z array

카테고리

질문:

2018년 5월 30일

편집:

2018년 5월 30일

Community Treasure Hunt

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

Start Hunting!

Translated by