我正在绘制一个矩阵(" I1"),它通过imagesc命令有一些NaN值。正如您在代码中看到的那样,我已经设置了这样的NaN值应该用白色绘制
I = magic(10);
I1 = NaN(10);
I1(4:6,4:6) = I(4:6,4:6);
f1 = figure();
h = imagesc(I1);
colormap jet;
set(h,'alphadata',~isnan(I1))
axis tight;
axis equal;
axis on;
matlab2tikz('file.tex')
我需要在matlab2tikz中转换这样的图像(参见脚本的最后一行)但是我得到以下错误:
使用writepng> parseInputs时出错(第349行) ' alpha'的价值是无效的。预期输入为以下类型之一:double,uint8,uint16
相反,它的类型是合乎逻辑的。
有人可以帮助克服这个问题吗?提前致谢
答案 0 :(得分:2)
您只需将透明胶片转换为double
即可。目前,数组的类型为logical
,透明度数据只能是double, uint8
或uint16
中的一个。鉴于数组的性质,您希望任何非NaN
的内容在NaN
的值透明时完全可见,因此您需要0/1
数据,而不是true/false
}。
事实之后,只需转换为double
:
set(h,'alphadata',double(~isnan(I1)));