首页 > 解决方案 > 了解 min、max、meshgrid 函数以在模式识别中绘制 MED 边界

问题描述

这段代码是正确的但是,我不明白 using 和函数与绘制两个类的 MED 轮廓的关系minmax什么meshgrid。我希望我的问题很清楚......谢谢

%% Computing the classifiers
step = 0.2; % The lower this is the smoother the contours.
x = min([samples_a(:,1);samples_b(:,1)])-1:step:max([samples_a(:,1);samples_b(:,1)])+1;
y = min([samples_a(:,2);samples_b(:,2)])-1:step:max([samples_a(:,2);samples_b(:,2)])+1;
[X1, Y1] = meshgrid(x,y);

x = min([samples_c(:,1);samples_d(:,1);samples_e(:,1)])-1:step:max([samples_c(:,1);samples_d(:,1);samples_e(:,1)])+1;
y = min([samples_c(:,2);samples_d(:,2);samples_e(:,2)])-1:step:max([samples_c(:,2);samples_d(:,2);samples_e(:,2)])+1;
[X2, Y2] = meshgrid(x,y);

% Plotting the MED boundaries
contour(X1,Y1,MED1, [0, 0], 'Color', 'magenta', 'LineWidth', LINE_WIDTH);

标签: matlabpattern-recognition

解决方案


在这段代码中,xy是从最低的 x 和 y 坐标samples_asamples_b最高的向量。[samples_a(:,1);samples_b(:,1)]包含两组中的所有 x 坐标,minmax取它们的最小值和最大值。据推测,这些对应于MED1矩阵中样本的位置。因此, 处的值MED1(i,j)具有坐标x(j)y(i)

你现在可以做

contour(x,y,MED1)

meshgrid用于将这些向量转换为完整矩阵的代码X1Y1. 这两个矩阵应该与矩阵 具有相同的大小MED1,并通过复制向量x和来定义y。现在 at 的值MED1(i,j)具有坐标X1(i,j)Y1(i,j)

你现在可以做

contour(X1,Y1,MED1)

和以前一样。调用 tomeshgrid是不必要的。


推荐阅读