目录
问题
Matlab中使用函数imagesc、contourf等显示图像时,矩阵中存在的nan值会显示为最小值颜色(蓝色)。如下图蓝色为nan值。想将蓝色表示为白色。
这样的颜色可能存在误导性,那么如何将这种NaN处的值设置为空白色
方法1
使用下列代码(其中U为变量,Figure1为作图,替换即可)
Figure1=imagec(U)
set(Figure1,'alphadata',~isnan(U));
方法2
- 右击colar bar(颜色条),选择颜色图编辑器
- 双击最左侧蓝色标签
- 选择标记颜色——白色
最后,成图就出来啦
矩阵删NaN?
当然有小伙伴也可能会问,如果一个矩阵中含有NaN,想指定删除该部分(使其变为0)
注意,含有NaN的矩阵,其函数是特殊的,如Matlab中自带的函数nansum(求和)、nanmean(平均)、nanstd(标准偏差),在去nan数据的情况下,就可以完成求和、平均、标准偏差的操作。
代码:
for i=1:m
for j=1:n
if ~isnan(U(i,j))
U(i,j)==0;
end
end
end