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的回帖

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的回帖

huozhe123

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
wzp0098: 金币+10, 有帮助, 多谢,能帮忙改改吗? 2014-12-30 16:56:21
我查了一下,好像surf是平面图,你这个是三维的,所以不能表示
http://bbs.pinggu.org/thread-1171696-1-1.html
5楼2014-12-30 15:18:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

iloveyou1991

新虫 (初入文坛)

你画的是三维的吗?
你是不是想画P=P(x,y,z),这是四维的
6楼2014-12-30 15:48:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wzp0098

木虫 (著名写手)

引用回帖:
6楼: Originally posted by iloveyou1991 at 2014-12-30 15:48:42
你画的是三维的吗?
你是不是想画P=P(x,y,z),这是四维的

是的,是四维的,请指教!
7楼2014-12-30 16:57:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
wzp0098: 金币+70, 有帮助, 谢谢! 2015-01-02 09:19:29
CODE:
function slice_4D
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);
slice(X,Y,Z,P,[-2.5 0 2.5],0,[-2 2])

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

» 本帖已获得的红花(最新10朵)

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.
8楼2014-12-31 09:37:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wzp0098

木虫 (著名写手)

送红花一朵
引用回帖:
8楼: Originally posted by dbb627 at 2014-12-31 09:37:08
function slice_4D
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);
               K ...

非常感谢,但是我很想看到P(n, m, v)的表面轮廓图,现在是P(n, m, v)的密度分布图,请指教。谢谢
9楼2015-01-02 09:18:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wzp0098

木虫 (著名写手)

引用回帖:
8楼: Originally posted by dbb627 at 2014-12-31 09:37:08
function slice_4D
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);
               K ...

我想看到附件一样的图,请指教. 是否能用griddata3?
用matlab 画三维图,请高手指教.-1
@RN1%DO4A1R%H5DNB`$PFQI.png

10楼2015-01-03 22:40:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wzp0098 的主题更新
信息提示
请填处理意见