在matlab中使用fplot和函数句柄的问题

时间:2015-02-07 02:38:40

标签: matlab

我需要在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"为了你的帮助。

亲切的问候

1 个答案:

答案 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,然后运行该脚本会生成以下图表:

enter image description here