📄 plotclassdata.m
字号:
function plotclassdata(X, y, alpha_s, y_s, x_s, b0, K, K_p)
[len, p] = size(X);
n_1 = 0;
n_2 = 0;
for n=1:len
if y(n) == 1
n_1 = n_1 + 1;
for m=1:p
X_1(n_1,m) = X(n,m);
end
else
n_2 = n_2 + 1;
for m=1:p
X_2(n_2,m) = X(n,m);
end
end
end
%{
x1 = [min(X(:,1)):(max(X(:,1))-min(X(:,1)))/200:max(X(:,1))];
x2 = zeros(length(x1),1);
for n=1:length(x1)
if K == 1
x2(n) = fsolve(@(x)((alpha_s.*y_s)'*((x_s*[x1(n);x]+ones(length(alpha_s),1)).^K_p)+b0), x1(n));
elseif K == 2
x2(n) = fsolve(@(x)((alpha_s.*y_s)'*exp(-(sum(((x_s-ones(length(x_s),1)*[x1(n),x]).^2)')')./(2*K_p^2))+b0), x1(n));
else
end
end
%}
x1 = [X(:,1);(min(X(:,1))-1).*ones(length(X),1)];
x2 = [(min(X(:,2))-1).*ones(length(X),1); X(:,2)];
for n=1:length(x1)/2
if K == 1
x2(n) = fsolve(@(x)((alpha_s.*y_s)'*((x_s*[x1(n);x]+ones(length(alpha_s),1)).^K_p)+b0), X(n,2));
elseif K == 2
x2(n) = fsolve(@(x)((alpha_s.*y_s)'*exp(-(sum(((x_s-ones(length(x_s),1)*[x1(n),x]).^2)')')./(2*K_p^2))+b0), X(n,2));
else
end
end
for n=length(x1)/2+1:length(x1)
if K == 1
x1(n) = fsolve(@(x)((alpha_s.*y_s)'*((x_s*[x;x2(n)]+ones(length(alpha_s),1)).^K_p)+b0), X(n-length(x1)/2,1));
elseif K == 2
x1(n) = fsolve(@(x)((alpha_s.*y_s)'*exp(-(sum(((x_s-ones(length(x_s),1)*[x,x2(n)]).^2)')')./(2*K_p^2))+b0), X(n-length(x1)/2,1));
else
end
end
if K == 1
S = find(min(X(:,2)) < x2(1:length(x1)/2) < max(X(:,2)) );
elseif K == 2
S1 = find(min(X(:,2)) < x2(1:length(x1)/2) < max(X(:,2)) );
S2 = find(min(X(:,1)) < x1(length(x1)/2+1:length(x1)) < max(X(:,1)));
%S = intersect(S1,S2);
S2 = S2+(length(x1)/2).*ones(length(S2),1);
%S3 = S+(length(x1)/2).*ones(length(S),1);
S = [S1;S2];
else
end
x1 = x1(S);
x2 = x2(S);
plot(X_1(:,1), X_1(:,2), 'bo', X_2(:,1), X_2(:,2), 'rx', x1,x2,'k.', x_s(:,1), x_s(:,2), 'm*');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -