matlab2tikz 使用 alphadata 绘制图像时出错

matlab2tikz error plotting image with alphadata

我正在通过 imagesc 命令绘制一个具有一些 NaN 值的矩阵 ("I1")。正如您在代码中看到的那样,我已将此类 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' 的值无效。预期输入为 types:double、uint8、uint16

之一

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

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

您所要做的就是将透明胶片转换成 double。现在,数组的类型为 logical,透明度数据只能是 double, uint8uint16 之一。鉴于数组的性质,您希望任何非 NaN 的值都完全可见,而 NaN 的值是透明的,因此您需要 0/1 数据,而不是 true/false.

事后简单地转换为double

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