我在Matlab中有一个A
尺寸矩阵来nx2
收集2D点。它被上传到这里(不幸的是,我无法用简单的代码来复制它)。
当我使用它们绘制scatter
图时,得到以下图片,其中
黑色区域不凸
该区域的边界非常“不平滑”,沿边界相当清晰地显示了散点。
scatter(A(:,1), A(:,2), 50,'k', 'filled') xlim([-4 4]) ylim([-4 4])
问:我想知道是否有一种方法可以平滑区域边界。我考虑过使用patch
,但是鉴于该区域是非凸的,因此我不知道如何获得其顶点。我也尝试增加散点的大小,但结果更糟。有什么解决办法吗?
您可以boundary
用来查找形成边界的数据点的索引。接下来,您将必须使用这些索引选择数据点,以获取x
和y
包围数据的坐标。
% generate some random data
data = randn(100,2) + [3 4];
% find boundary, returns indices of points in data that define boundary
inds = boundary(data(:,1), data(:,2));
data_bound = data(inds,:);
% plot!
figure(1); clf;
hold on;
fill(data_bound(:,1), data_bound(:,2), 'r'); % fill boundary
scatter(data(:,1),data(:,2),100, 'bx'); % plot data points
plot(data_bound(:,1), data_bound(:,2), 'k', 'linewidth', 2); % boundary
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句