此代码是正确的但是,我不明白使用min
,max
和meshgrid
函数与绘制两个类的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);
答案 0 :(得分:0)
在此代码中,x
和y
是从samples_a
和samples_b
中的最低x和y坐标到最高的向量。 [samples_a(:,1);samples_b(:,1)]
包含两个集合中的所有x坐标,min
和max
取其最小值和最大值。据推测,这些对应于MED1
矩阵中样本的位置。因此,MED1(i,j)
处的值具有坐标x(j)
和y(i)
。
您现在可以
contour(x,y,MED1)
使用meshgrid
将这些向量转换为完整矩阵X1
和Y1
的代码。这两个矩阵应与矩阵MED1
具有相同的大小,并通过复制向量x
和y
来定义。现在,MED1(i,j)
的值的坐标为X1(i,j)
和Y1(i,j)
。
您现在可以
contour(X1,Y1,MED1)
以前所未有的方式。无需拨打meshgrid
。