如何绘制一个包含NaN的矩阵?

7次浏览(最近30天)
阿布Chakraborty
阿布Chakraborty 2021年9月12日
评论道: 戴夫B 2021年9月27日
我有一个MATLAB二维数组我想绘制它只包含两个数字:0和1。它还包含一些nan。我要把它画出来。二维数组是这样的:
A=[1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
0 1 1 NaN
1 1 1 NaN
1 1 1 NaN
1 1 1 NaN
1 1 1 NaN
1 1 1 NaN
1 1 0 NaN
1 1 1 NaN
1 1 1 1
1 1 1 1
1 1 1 NaN
1 1 1 NaN
1 1 1 1
1 0 1 NaN
1 1 1 1];
我使用下面的代码试图绘制它:
pcolor(一,1:4);
colorbar;
但它并没有显示出nan。而且,它只显示2d数组的前3列的结果。谁能帮我一下吗?

接受的答案

戴夫B
戴夫B 2021年9月12日
编辑:戴夫B 2021年9月12日
Pcolor指定顶点的颜色,这(令人困惑)意味着少了一行和一列。不过,它在NaN上做得很好,不管颜色图如何,都将它们标记为白色。你可以填充你的数组并看到一切,NaN不会在颜色栏中显示:
一个=木屐;%把它放在一个函数中,所以它不在答案的顶部
pcolor (padarray ([1],“职位”))
colorbar
或者,你可以使用image(或imagesc),但你可能需要对你的颜色映射做一些特殊的事情来区分NaN和0:
显示亮度图像(一)
colormap([1 1 1;线(2)]);
caxis ([1]);% NaN表示底部值“低于”
c = colorbar;
c.Ticks =[2 0 2]。/ 3;
c.TickLabels = {“南”' 0 ' ' 1 '};
xticks (1:4);%注意,图像的刻度与面对齐,pcolor与顶点对齐
注意imagesc和pcolor对y轴的方向做了一些不同的操作。您可以使用 集(gca, YDir,…) 按你喜欢的方式来设置,还是 xy轴 / 轴ij
函数一个=木屐
A=[1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
0 1 1 NaN
1 1 1 NaN
1 1 1 NaN
1 1 1 NaN
1 1 1 NaN
1 1 1 NaN
1 1 0 NaN
1 1 1 NaN
1 1 1 1
1 1 1 1
1 1 1 NaN
1 1 1 NaN
1 1 1 1
1 0 1 NaN
1 1 1 1];
结束
4评论
戴夫B
戴夫B 2021年9月27日
这里的目标是为Z<.05的每个位置生成一个点吗?我不太了解点画,它是为每个正方形产生很多点还是只有一个?
你能做一些像(一个点/方盒子): 散射(X(面具(:)),y(面具(:)),“k”,“填满”)

登录评论。

答案(1)

沃尔特·罗伯森
沃尔特·罗伯森 2021年9月12日
颜色是随意选择的。黑色是0,橙色是1,黄色是nan。
A=[1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
0 1 1 NaN
1 1 1 NaN
1 1 1 NaN
1 1 1 NaN
1 1 1 NaN
1 1 1 NaN
1 1 0 NaN
1 1 1 NaN
1 1 1 1
1 1 1 1
1 1 1 NaN
1 1 1 NaN
1 1 1 1
1 0 1 NaN
1 1 1 1];
α=双(~ isnan (A));
显示亮度图像(一个“AlphaData”、α);
colormap ([0 0 0;。9。5。3)
集(gca),“颜色”“y”

下载188bet金宝搏


释放

R2020b

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!

翻译的