bearbrother3 发表于 2007-10-15 19:50

关于三维曲面和等高线的绘制问题

我想画出下面代码中h1,h2,Ek的三维曲面,还有等高线,但总是没有结果。我知道有很多变量都是多余的,但我只是搞个小试验而已,麻烦各位给想想办法
%Untitled4.m
L=input('L='); N=input('N='); u=input('u='); W=; k=1:L;
xk0=cos(2*pi*k/N); xk1=cos(2*pi*(k-1)/N); Xk=; dk=2*sin(2*pi*k/N);
yk=zeros(1,L); ek=zeros(1,L); w=zeros(2,L); Ek=zeros(1,L);
R=;
P=; =eig(R);
v=zeros(2,L); v1=zeros(2,L); h1=zeros(1,L); h2=zeros(1,L);
for n=0:(L-1)
    yk=W(1)*xk0+W(2)*xk1; ek(n+1)=dk(n+1)-yk(n+1); W=W+2*u*ek(n+1)*Xk(:,n+1);
    w(:,1)=; w(:,n+2)=W; v(:,n+1)=w(:,n+1)-w(:,L); v1(:,n+1)=V'*v(:,n+1);
    h1(n+1)=v1(2*n+1); h2(n+1)=v1(2*(n+1));
end
n=0:(L-1);
figure(1); plot(n,ek); hold on; xlabel('迭代次数'); ylabel('误差函数ek');
figure(2); plot(n,w(2*n+1)); xlabel('迭代次数'); ylabel('权值1');
figure(3); plot(n,w(2*(n+1))); xlabel('迭代次数'); ylabel('权值2');
for n=0:(L-1), Ek(n+1)=dk*dk'/L+w(:,n+1)'*R*w(:,n+1)-2*P'*w(:,n+1); end
n=0:(L-1);
figure(4); plot(n,Ek); xlabel('迭代次数'); ylabel('均方误差函数');
%--------------均方误差等高线-------------------------
for n=0:(L-1), Ek(n+1)=Ek(L)+*D*; end
n=0:(L-1);
=meshgrid(min(w(2*n+1)):0.1:max(w(2*n+1)),min(w(2*(n+1))):0.1:max(w(2*(n+1))));
figure(5); contour(Ek(n+1),20); hold on;

[ 本帖最后由 ChaChing 于 2010-8-3 09:36 编辑 ]

花如月 发表于 2007-10-15 20:22

回复 #1 bearbrother3 的帖子

请注意以下几点:
(1)程序不是多长的时候,没有必要用附件
(2)绘图的技巧版面很多,请先搜索版面,如果没有解决再发帖。
(3)发帖要描述清楚你遇到的具体问题。即便是搞小实验,也应该尽量让自己的代码简洁。

让版友来读你的代码然后找问题,然后再帮你解决。有些期望过高呀

eight 发表于 2007-10-15 20:44

同意楼上的观点,请楼主先阅读本版各个置顶帖,然后重新整理你的问题
页: [1]
查看完整版本: 关于三维曲面和等高线的绘制问题