gpt4 book ai didi

Matlab imagesc 绘制 nan 值

转载 作者:太空宇宙 更新时间:2023-11-03 20:11:10 35 4
gpt4 key购买 nike

当使用 imagesc 可视化包含 NaN 值的数据时,Matlab 将它们视为最小值(在灰色中将它们涂成黑色、墨蓝色等)。 jet 颜色图既不包含黑色也不包含白色。是否可以将 nan 值显示为黑色/白色?例如:

data = [0 0 0 ; .5 .5 .5 ;1 1 1;nan nan nan];

应该会产生蓝-绿-红-黑条纹。

谢谢

最佳答案

我编写了一个自定义函数来将 NaN 值显示为透明的,即 alpha 值为 0。

function h = imagesc2 ( img_data )
% a wrapper for imagesc, with some formatting going on for nans

% plotting data. Removing and scaling axes (this is for image plotting)
h = imagesc(img_data);
axis image off

% setting alpha values
if ndims( img_data ) == 2
set(h, 'AlphaData', ~isnan(img_data))
elseif ndims( img_data ) == 3
set(h, 'AlphaData', ~isnan(img_data(:, :, 1)))
end

if nargout < 1
clear h
end

NaN 将因此显示为与图形背景颜色相同的颜色。如果您删除 axis image off 行,则 NaN 将显示为与轴背景颜色相同的颜色。该函数假定输入图像的大小为 n x m(单 channel )或 n x m x 3(三 channel ),因此可能需要根据您的使用进行一些修改。

使用您的数据:

data = [0 0 0 ; .5 .5 .5 ;1 1 1;nan nan nan];
imagesc2(data);
axis on
set(gca, 'Color', [0, 0, 0])

enter image description here

关于Matlab imagesc 绘制 nan 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14933039/

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