0001 function lfplot(varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 fit = varargin{1};
0024 data = fit{1};
0025 xdata = data{1};
0026 n = size(xdata,1);
0027 d = size(xdata,2);
0028 fali = fit{4}{5};
0029 ydata = data{2};
0030 wdata = data{3};
0031 cdata = data{4};
0032 if (length(cdata)==1) cdata = zeros(n,1); end;
0033 showdata = (fit{2}{8}==0);
0034 ppargs = {};
0035
0036 type = 's';
0037 na = 2;
0038 while na <= length(varargin)
0039 inc = 0;
0040 if (strcmp(varargin{na},'contour'))
0041 type = 'c';
0042 inc = 1;
0043 end;
0044 if (strcmp(varargin{na},'nodata'))
0045 showdata = 0;
0046 inc = 1;
0047 end;
0048 if (strcmp(varargin{na},'direct'))
0049 ppargs = {ppargs{:} 'direct'};
0050 inc = 1;
0051 end;
0052 if (inc==0)
0053 error('Unknown Input',varargin{na});
0054 end;
0055 na = na+inc;
0056 end;
0057
0058 xfit = lfmarg(fit);
0059 yfit = predict(fit,xfit,ppargs{:});
0060 yfit = invlink(yfit,fali);
0061 fam = mod(fali(1),64);
0062 if (fam>4)
0063 ydata = ydata ./ wdata;
0064 end;
0065
0066 if (d==1)
0067 plot(xfit{1},yfit);
0068 if (showdata)
0069 hold on;
0070 if (length(ydata)==1) ydata = zeros(n,1); end;
0071 plotbyfactor(xdata,ydata,cdata);
0072 hold off;
0073 end;
0074 end;
0075
0076 if (d==2)
0077 x1 = xfit{1};
0078 x2 = xfit{2};
0079 yfit = reshape(yfit,length(x1),length(x2));
0080 if (type=='c')
0081 [C h] = contour(x1,x2,yfit');
0082 clabel(C,h);
0083 if (showdata)
0084 hold on;
0085 plotbyfactor(xdata(:,1),xdata(:,2),cdata);
0086 hold off;
0087 end;
0088 else
0089 surf(x1,x2,yfit');
0090 end;
0091 end;
0092
0093 return;