我有一个数组,其中包含一个相图的结果,如果我有三个类别可能是
phases = [1 1 1 1 2 2 2 2; ...
1 1 1 2 2 2 2 2; ...
1 1 2 2 2 2 2 2; ...
3 3 3 3 3 3 3 3; ...
3 3 3 3 3 3 3 3];
我想在这三个如此定义的区域之间自动画一条分界线,这样最终的图像只包含两条线 - 一条划分区域1和2,一条划分区域1/2和区域3。 p>
但删除了彩色贴片,而只是围绕这三个区域勾勒出轮廓。
到目前为止,我已尝试使用contour(x,y,phases,[1 1])
并为每个阶段执行单个绘图。这给出了沿边界的平行线,并且在更多区域相交的点处,我不能取两个值的平均值。
phases = [1 1 1 1 2 2 2 2; ...
1 1 1 2 2 2 2 2; ...
1 1 2 2 2 2 2 2; ...
3 3 3 3 3 3 3 3; ...
3 3 3 3 3 3 3 3];
[x,y] = meshgrid(1:8, 1:5);
hold on
contour(x,y,phases,[1 1])
contour(x,y,phases,[2 2])
contour(x,y,phases,[3 3])
即,有一条线标记3的区域的“最下面”边界,另一条线找到级别1和3之间的内插值以创建值为2的轮廓。但对于相图,这留下这些线之间的区域是空的。
我还尝试在每个阶段的二进制数组中拆分数组,并使用bwboundaries
得到相同的结果。
有没有人有任何想法?