Masking data of 4D images

10 次查看(过去 30 天)
Gina Carts
Gina Carts 2019-10-10
编辑: Gina Carts 2019-10-10
Hi there,
I have a 3D binary mask and I would like to mask my 4D data. So basically I would like to keep the information of my 4D data in all the voxels corresponding to the mask.
Any idea how to do this?

回答(1 个)

David Legland
David Legland 2019-10-10
Hi Gina,
I suppose that you want to repeat the binary mask along the missing dimension of your 4D data, right?
One possibility could be the following:
mask4d = repmat(mask, 1, 1, 1, size(data, 4));
values = data(mask4d);
(This assumes that the three dimensions of the mask correspond to the first three dimension of the data).
  1 个评论
Gina Carts
Gina Carts 2019-10-10
编辑:Gina Carts 2019-10-10
Yes, I want to repeat the mask along the 4th dimension to identify the non zero voxels. The rest will be zero.
I tried what you have suggested but I'm getting the following error at this line: values = data(mask4d);
My data are all positive numbers
Subscript indices must either be real positive integers or logicals.

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by