matlab2tikz错误用alphadata绘制图像

时间:2017-08-14 16:54:23

标签: image matlab matlab-figure tikz

我正在绘制一个矩阵(" 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

相反,它的类型是合乎逻辑的。

有人可以帮助克服这个问题吗?提前致谢

1 个答案:

答案 0 :(得分:2)

您只需将透明胶片转换为double即可。目前,数组的类型为logical,透明度数据只能是double, uint8uint16中的一个。鉴于数组的性质,您希望任何非NaN的内容在NaN的值透明时完全可见,因此您需要0/1数据,而不是true/false }。

事实之后,只需转换为double

set(h,'alphadata',double(~isnan(I1)));