我需要在x轴上绘制从0到7的值,所以我虽然必须使用fplot而且我正在读取我必须使用句柄函数。我试图在互联网上关注样本,但我无法绘制积分。主要代码是下一个:
Y=[-1;
1;
1]
X=[3 0.2 1;
1 0.3 1;
4 0.5 1]
num= length(Y)
eta= 0.01
for i = 1 : num
if ~isequal(sign(W.* X(i,:)),Y(i).*ones(1,3))
W = W .+ eta .*(X(i,:) .* Y(i));
[line] = @(x) line_percep(W,X,i);
end
end
fplot(line, [0 7]);
我加入了辅助功能:
function [line] = line_percep(vW,vX,vi)
a=(-vW(1)/vW(3));
b=(-vW(2)/vW(3));
line=vX(vi,1)*a + vX(vi,2)*b;
end
现在我已绘制图表,但没有任何线条。我猜计算中存在问题。谢谢你" Benoit_11"为了你的帮助。
亲切的问候
答案 0 :(得分:0)
我不确定你得到了什么样的错误,但是尝试使用hold all
(或hold on
)在脚本中运行代码(即不是从命令窗口运行)绘制多行和numel(W)
作为循环计数器(代码中的num
未定义...你可能忘了写它),这应该有效。
无论如何,让我们说你保存一个包含这段代码的脚本:
clc
clear
X=[3 0.2 1;
1 0.3 1;
4 0.5 1];
W=[.3, .8, .2];
hold all
for i = 1 : numel(W)
fh = @(x) fun(W,X,i)
fplot(fh, [0 7]);
end
然后保存您的函数fun
,然后运行该脚本会生成以下图表: