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, uint8
或 uint16
之一。鉴于数组的性质,您希望任何非 NaN
的值都完全可见,而 NaN
的值是透明的,因此您需要 0/1
数据,而不是 true/false
.
事后简单地转换为double
:
set(h,'alphadata',double(~isnan(I1)));
我正在通过 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, uint8
或 uint16
之一。鉴于数组的性质,您希望任何非 NaN
的值都完全可见,而 NaN
的值是透明的,因此您需要 0/1
数据,而不是 true/false
.
事后简单地转换为double
:
set(h,'alphadata',double(~isnan(I1)));