在MATLAB的pcolor图中显示二进制数组的所有元素(2D二进制数据)

时间:2016-09-18 17:17:11

标签: matlab plot binary

假设我们在MATLAB中有这个数组和List<Boolean> valuesList = values.asList(); List<Boolean> list2 = valuesList .stream() .map(value-> value ? trueCount++ : falseCount++) .collect(Collectors.toList());`` 函数:

pcolor

简介:

Enter image description here

我希望在此jj = [0,1,0;1,0,1;1,1,0]; pcolor(jj); 图中显示jj矩阵的所有元素,因此我们应该有一个3 * 3的图。我怎么能在MATLAB中做到这一点?

无论如何,只显示不在垂直和水平缩放之上的图中的行号和列号?是否有其他推荐的合适类型的图表来显示此类数据(2D二进制数据)?

1 个答案:

答案 0 :(得分:3)

如果您希望所有图片数据都显示为pcolor,则需要在打印之前使用额外的行和列填充输入,因为在pcolor下面是surf }对象和颜色分配给顶点而不是

jj = [0,1,0;1,0,1;1,1,0];

% Add an extra column
jj(:,end+1) = 0;

% Add an extra row
jj(end+1,:) = 0;

p = pcolor(jj);

现在,如果您只需要轴上的整数标签,则可以使用{{1}的XTick / YtickXTickLabel / YTickLabel属性进行调整为每个元素绘制正确的值

axes

如果您不需要黑色边缘​​,只需使用xlims = get(gca, 'XLim'); ylims = get(gca, 'YLim'); % Must offset ticks by 0.5 to center them xticks = (xlims(1) + 0.5):(xlims(2) - 0.5); yticks = (ylims(1) + 0.5):(ylims(2) - 0.5); xticklabels = arrayfun(@num2str, 1:numel(xticks), 'UniformOutput', 0); yticklabels = arrayfun(@num2str, 1:numel(yticks), 'UniformOutput', 0); set(gca, 'xtick', xticks, 'ytick', yticks, ... 'xticklabel', xticklabels, 'yticklabel', yticklabels)

即可完成相同的2D绘图
imagesc