MATLAB R2019a 中的轮廓函数中“ShowText”和“LineStyle”之间的冲突?

JQY*_*JQY 5 matlab linestyle matlab-figure contourf showtext

我使用的代码如下。但是当我在 MATLAB R2014a 和 R2019a(在同一台计算机,Win7 64 位)中运行我的代码时,数字是不同的。MATLAB R2019a中的函数'ShowText''LineStyle'函数之间似乎存在冲突contourf?我想要的是带有文本且没有线条的图形(如 R2014a 的图形)。我怎样才能在 R2019a 中获得它?

for i = 1 : 10
    for j = 1 : 10
        res(i, j) = i * j;
    end
end
contourf(res, 'ShowText', 'on', 'LineStyle', 'none');
Run Code Online (Sandbox Code Playgroud)

图使用 R2014a

图由 R2014a

图使用 R2019a

图由 R2019a

图使用 R2019acontourf(res, 'ShowText', 'on')只使用

图由 R2019a 仅使用“contourf(res, 'ShowText', 'on')

Art*_*hur 4

经过一番研究后,我在未记录的 MATLAB的帮助下找到了这个解决方案:

for i = 1 : 10
for j = 1 : 10
res(i, j) = i * j;
end
end
[c,hC] = contourf(res);
clabel(c,hC)
drawnow; % Important !
set(hC.EdgePrims(:),'Visible','off');
Run Code Online (Sandbox Code Playgroud)

结果如下R2017b在此输入图像描述

免责声明: 此解决方案依赖于 MATLAB 的未记录功能,结果可能会因您的版本而异。

R2018a

Sardar UsamaR2018a在评论中提出了替代解决方案:

%drawnow; % Important !
%set(hC.EdgePrims(:),'Visible','off');
delete(hc.EdgePrims);
Run Code Online (Sandbox Code Playgroud)

  • 或者你可以只删除(hC.EdgePrims)而不是drawow并设置可见性关闭 (2认同)