了解min,max,meshgrid函数以在模式识别中绘制MED边界

时间:2018-05-16 21:24:22

标签: matlab pattern-recognition

此代码是正确的但是,我不明白使用minmaxmeshgrid函数与绘制两个类的MED轮廓有什么关系。 我希望我的问题很明确......谢谢

%% 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);

1 个答案:

答案 0 :(得分:0)

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

您现在可以

contour(x,y,MED1)

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

您现在可以

contour(X1,Y1,MED1)

以前所未有的方式。无需拨打meshgrid