How can I display all 'NaN' values as black in my image to differentiate them from lowest values?
10 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2009 年 6 月 27 日
編集済み: MathWorks Support Team
2021 年 4 月 19 日
I am using imagesc to display matrices. Some of them are 'NaN' values, and I want those to be black in the display so that I can distinguish the 'NaN' values from the lowest values.
採用された回答
MathWorks Support Team
2009 年 6 月 27 日
This can be done by writing code that will check for the NaN values in the image matrix and set it black. For example, create a 5X5 matrix 'a' containing some NaN values and some '0' values. Get minimum and maximum values of that matrix and also location of all 'NaN' values. Then replace all NaN with values which are less than minimum number present in that matrix. Then redraw the colormap and plot the image.
a =[
0 0.8843 NaN 0.3900 NaN
NaN 0.5880 0.8256 0.1117 0.4950
0.8620 0.1548 NaN 0.1363 0.7476
NaN 0.8999 0.3185 0.6787 NaN
0.5144 0 0.5341 0.4952 0.8507
];
minv = min(min(a));
maxv = max(max(a));
a(isnan(a)) = minv-((maxv-minv)/5);
ddd=[0 0 0;jet(10)];
colormap(ddd);
imagesc(a)
1 件のコメント
Nitin Khola
2016 年 6 月 13 日
編集済み: MathWorks Support Team
2021 年 4 月 19 日
Hi Tord,
The behavior of NaN values in "imagesc" is not defined currently as described in the following documentation: https://www.mathworks.com/help/matlab/ref/imagesc.html#input_argument_c
So that we can work around this behavior for colorbar and data cursor, it will require changing the ticklabels for the former and programming the callback (as per the position of the mouse pointer e.g. if on a NAN tile, display "NaN") for latter. Please refer to the following documentation which can help you implement this behavior:
Cheers!
Nitin
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Orange についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!