Функция slice() в Matlab не работает должным образом

Я хочу построить дискретные 2D-изображения в 13 z места в [4:4:52] используя следующие строки кода.

a=100;
[mesh.x,mesh.y,mesh.z] = meshgrid(1:1:100,1:1:100,4:4:52);
a_unifdist=0;
b_unifdist=10;
noise=a_unifdist+(b_unifdist-a_unifdist).*rand(100,100,13);
c = (a./mesh.x)+noise;
slice(c,1:100,1:100,4:4:52);

Тем не менее, я получаю 13 непрерывных участков от 1 до 13 вместо 13 отдельных мест, как показано ниже:

Может ли кто-нибудь сказать мне, в чем моя ошибка? Я хочу, чтобы изображения складывались в [4:4:52] места на оси Z. Благодарю.

1 ответ

Решение

Возможно, вы имели в виду:

slice(mesh.x, mesh.y, mesh.z, c, [], [], 4:4:52)

Вот более интересный пример, чем случайные данные:

load mri
D = double(squeeze(D));

h = slice(D, [], [], 1:size(D,3));
set(h, 'EdgeColor','none', 'FaceColor','interp')
alpha(.1)

Скриншот

Другие вопросы по тегам