首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab三维剂量阵可视化

Matlab三维剂量阵可视化
EN

Stack Overflow用户
提问于 2014-07-04 11:51:27
回答 2查看 7K关注 0票数 2

我在Matlab中有一个三维矩阵,它对应于一个能量剂量传递矩阵。我正在努力想象和表示矩阵。目前,我正在执行以下操作(thanks to another post)。

代码语言:javascript
复制
diff = double(squeeze(diff));
h = slice(diff, [], [], 1:size(diff,3));
set(h, 'EdgeColor','none', 'FaceColor','interp')
alpha(.1)

这给了我一个很好的三维图形,但它仍然很难正确地看到它,我必须继续旋转图形,以便能够正确地可视化它。我还使用了:

代码语言:javascript
复制
isosurface(diff,'isovalue')

但同样,我们很难看到任何东西。

我想知道是否有办法去除实际剂量表示周围的蓝色区域,因为蓝色区域对应于0值。也许摆脱这一切可以帮助我看到一个更清晰的画面。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-04 12:01:56

您可以将零设置为nan,这样就不会绘制它们。

代码语言:javascript
复制
diff = double(squeeze(diff));
diff(diff==0)=nan;                              % added line
h = slice(diff, [], [], 1:size(diff,3));
set(h, 'EdgeColor','none', 'FaceColor','interp')
alpha(.1)

示例

使用前面问题中的MRI数据

代码语言:javascript
复制
load mri
D = double(squeeze(D));
D(D==0)=nan;
h = slice(D, [], [], 1:size(D,3));
set(h, 'EdgeColor','none', 'FaceColor','interp')
alpha(.1)

输出

用nan代替零

而不用nan替换零

票数 8
EN

Stack Overflow用户

发布于 2014-07-04 12:01:45

这样做的一种方法是使用NaN不想表示的值复制数据。例如,下面是来自other post的原始示例映像

现在,如果我们使用相同的图像数据集,将零替换为NaN,并使用相同的方法绘制:

代码语言:javascript
复制
D(D==0)=NaN;
h = slice(D, [], [], 1:size(D,3));
set(h, 'EdgeColor','none', 'FaceColor','interp')
alpha(.1)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24573653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档