gpt4 book ai didi

matlab - imagesc 中 NaN 的对比色

转载 作者:太空宇宙 更新时间:2023-11-03 19:26:17 25 4
gpt4 key购买 nike

我用 NaN 填充矩阵中未使用的元素,并且我想在使用 imagesc 显示数据时为这些具有 NaN 值的元素分配对比色。

下面是一个可能的解决方案的链接,但我不太明白。

http://www.mathworks.com/matlabcentral/newsreader/view_thread/19985

最佳答案

NaN 值从坐标区颜色图中获取第一种颜色,默认情况下对应于最小值(NaN 除外)。您可以使用 CAXIS 更改最小值设置轴颜色限制的颜色功能。要为 NaN 值分配对比色,您可以为 NaN 值添加特殊颜色作为第一种颜色(1x3 向量)。

我以你的例子做了一个函数(有一些注释):

function [h hcb] = imagescwithnan(a,cm,nanclr)
% IMAGESC with NaNs assigning a specific color to NaNs

%# find minimum and maximum
amin=min(a(:));
amax=max(a(:));
%# size of colormap
n = size(cm,1);
%# color step
dmap=(amax-amin)/n;

%# standard imagesc
him = imagesc(a);
%# add nan color to colormap
colormap([nanclr; cm]);
%# changing color limits
caxis([amin-dmap amax]);
%# place a colorbar
hcb = colorbar;
%# change Y limit for colorbar to avoid showing NaN color
ylim(hcb,[amin amax])

if nargout > 0
h = him;
end

这里的 caxis 语句不是将颜色图的第一种颜色分配给最小值 amin,而是分配给 amin-dmap。因此,第一种颜色专门分配给 NaN。


试试这个函数:

a=peaks;
a(a < 0.5) = nan;
imagescwithnan(a,hot,[0 1 1]) %# [0 1 1] is cyan

test image - NaN color is hidden

如果您在函数中注释 ylim 语句(可以使用附加参数控制),则此 NaN 颜色将出现在颜色图上。

test image - NaN color is shown on the colorbar

关于matlab - imagesc 中 NaN 的对比色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8481324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com