24小时热门版块排行榜    

查看: 1190  |  回复: 18
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

wzp0098

木虫 (著名写手)

[求助] 用matlab 画三维图,请高手指教. 已有2人参与

程序如下,可是没有办法运行,请高手指教,重谢。
W=-3:0.1:3;K=-3:0.1:3i;V=-3:0.1:3;
P = [];
for n=1:length(W);
         Ky=W(n);
     for m=1:length(K);
         Kx=K(m);
          for v=1:length(V);
              Kz=V(v);
        w = 1;
        K2 = K1+2*w; x = 2*(sin(Kx)+sin(Ky));
        r1 = 8; r2 = 0.001*r1; T = 3*sin(Kz);
        A=[  -r1   r2-r1  -i*x      i*x      0           0       0              0;
                  0    -r2       0       0       0           0      i*T           -i*T;
           -2*i*x  -i*x -r1-i*K1*0.5 0     -i*T          0       0              0;
                2*i*x  i*x       0  -r1+i*K1*0.5 0          i*T      0              0;
                  0     0      -i*T      0 -r2-i*(K1+K2)*0.5 0      i*x             0;
                  0     0        0      i*T      0 -r2+i*(K1+K2)*0.5 0             -i*x;
                 i*T 2*i*T       0       0      i*x          0 -r2-r1+i*(K1-K2)*0.5 0;
                -i*T -2*i*T      0       0       0         -i*x      0 -r2-r1-i*(K1-K2)*0.5];
        B = [-r1;0;-i*x;i*x;0;0;i*T;-i*T];
        Y = A\B;
    P(n, m, v) = imag(Y(3)); % <---------------------------P向量中的元素赋值
          end
    end
end
[X,Y,Z]=meshgrid(W,K,V);
surf(X,Y,Z,P);
shading interp
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
wzp0098: 金币+60, ★★★很有帮助 2015-01-04 16:47:10
CODE:
function slice_4D
W=-3:0.05:3;K=-3:0.05:3;V=-3:0.05:3;
P = [];
for n=1:length(W);
          Ky=W(n);
      for m=1:length(K);
          Kx=K(m);
           for v=1:length(V);
               Kz=V(v);
         w = 1;K1=0;
         K2 = K1+2*w; x = 2*(sin(Kx)+sin(Ky));
         r1 = 8; r2 = 0.001*r1; T = 3*sin(Kz);
         A=[  -r1   r2-r1  -i*x      i*x      0           0       0              0;
               0    -r2       0       0       0           0      i*T           -i*T;
            -2*i*x  -i*x -r1-i*K1*0.5 0     -i*T          0       0              0;
             2*i*x  i*x       0  -r1+i*K1*0.5 0          i*T      0              0;
               0     0      -i*T      0 -r2-i*(K1+K2)*0.5 0      i*x             0;
               0     0        0      i*T      0 -r2+i*(K1+K2)*0.5 0             -i*x;
              i*T 2*i*T       0       0      i*x          0 -r2-r1+i*(K1-K2)*0.5 0;
             -i*T -2*i*T      0       0       0         -i*x      0 -r2-r1-i*(K1-K2)*0.5];
         B = [-r1;0;-i*x;i*x;0;0;i*T;-i*T];
         Y = A\B;
     P(n, m, v) = imag(Y(3)); % <---------------------------P向量中的元素赋值
           end
     end
end
[X,Y,Z]=meshgrid(W,K,V);
figure;slice(X,Y,Z,P,[-2.5 0 2.5],0,[-2 2])
result = HistRate(P(:));
[Pm,I]=max(result(:,2));
figure;
result(I,1)
Pv=isosurface(X,Y,Z,P,result(I,1));
p=patch(Pv)

用matlab 画三维图,请高手指教.
untitled1.jpg

The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
13楼2015-01-04 15:36:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 19 个回答

huozhe123

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
K=-3:0.1:3i;这个什么意思?从-3到0 ?还有,k1你在哪定义的?
2楼2014-12-29 09:09:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wzp0098

木虫 (著名写手)

我改了一下,程序还是运行不起来,请大虾指教!
W=-3:0.1:3;K=-3:0.1:3;V=-3:0.1:3;
P = [];
for n=1:length(W);
          Ky=W(n);
      for m=1:length(K);
          Kx=K(m);
           for v=1:length(V);
               Kz=V(v);
         w = 1;K1=0;
         K2 = K1+2*w; x = 2*(sin(Kx)+sin(Ky));
         r1 = 8; r2 = 0.001*r1; T = 3*sin(Kz);
         A=[  -r1   r2-r1  -i*x      i*x      0           0       0              0;
                   0    -r2       0       0       0           0      i*T           -i*T;
            -2*i*x  -i*x -r1-i*K1*0.5 0     -i*T          0       0              0;
                 2*i*x  i*x       0  -r1+i*K1*0.5 0          i*T      0              0;
                   0     0      -i*T      0 -r2-i*(K1+K2)*0.5 0      i*x             0;
                   0     0        0      i*T      0 -r2+i*(K1+K2)*0.5 0             -i*x;
                  i*T 2*i*T       0       0      i*x          0 -r2-r1+i*(K1-K2)*0.5 0;
                 -i*T -2*i*T      0       0       0         -i*x      0 -r2-r1-i*(K1-K2)*0.5];
         B = [-r1;0;-i*x;i*x;0;0;i*T;-i*T];
         Y = A\B;
     P(n, m, v) = imag(Y(3)); % <---------------------------P向量中的元素赋值
           end
     end
end
[X,Y,Z]=meshgrid(W,K,V);
surf(X,Y,Z,P);
shading interp
3楼2014-12-29 12:45:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wzp0098

木虫 (著名写手)

引用回帖:
2楼: Originally posted by huozhe123 at 2014-12-29 09:09:14
K=-3:0.1:3i;这个什么意思?从-3到0 ?还有,k1你在哪定义的?

我改了一下,程序还是运行不起来,请大虾指教!
W=-3:0.1:3;K=-3:0.1:3;V=-3:0.1:3;
P = [];
for n=1:length(W);
           Ky=W(n);
       for m=1:length(K);
           Kx=K(m);
            for v=1:length(V);
                Kz=V(v);
          w = 1;K1=0;
          K2 = K1+2*w; x = 2*(sin(Kx)+sin(Ky));
          r1 = 8; r2 = 0.001*r1; T = 3*sin(Kz);
          A=[  -r1   r2-r1  -i*x      i*x      0           0       0              0;
                    0    -r2       0       0       0           0      i*T           -i*T;
             -2*i*x  -i*x -r1-i*K1*0.5 0     -i*T          0       0              0;
                  2*i*x  i*x       0  -r1+i*K1*0.5 0          i*T      0              0;
                    0     0      -i*T      0 -r2-i*(K1+K2)*0.5 0      i*x             0;
                    0     0        0      i*T      0 -r2+i*(K1+K2)*0.5 0             -i*x;
                   i*T 2*i*T       0       0      i*x          0 -r2-r1+i*(K1-K2)*0.5 0;
                  -i*T -2*i*T      0       0       0         -i*x      0 -r2-r1-i*(K1-K2)*0.5];
          B = [-r1;0;-i*x;i*x;0;0;i*T;-i*T];
          Y = A\B;
      P(n, m, v) = imag(Y(3)); % <---------------------------P向量中的元素赋值
            end
      end
end
[X,Y,Z]=meshgrid(W,K,V);
surf(X,Y,Z,P);
shading interp
4楼2014-12-29 12:46:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见