24小时热门版块排行榜    

查看: 1292  |  回复: 7

wzp0098

木虫 (著名写手)

[求助] 利用for语句画二维图

K = -10:0.1:10;
P = []; % <-------------------添加此句分配P为向量
for n=1:length(K);
        K1 = K(n);
        w = 10;
        K2 = K1+2*w; x = 0.5;
        r1 = 8; r2 = 0.001*r1; T = 3;
        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) = imag(Y(3)); % <---------------------------P向量中的元素赋值
end
plot(K,P)
该程序可以画一维图形,如果我想画P有关(K1和W)的二维图形,怎么处理?请牛人指教!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wzp0098

木虫 (著名写手)

画P有关(K1和w)的二维图形,请大虾指教!
2楼2012-07-15 09:43:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mei3014

金虫 (正式写手)

木有头屑

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
臭水沟: 金币+2, 谢谢交流~~ 2012-07-15 19:24:27
你的w又不是变量,怎么画二维图,除非w=10*ones(1,length(K))。
这样就要再用一个for循环,最后输出的P应该是201*201的矩阵,因为1*201的向量是画不了二维图的!
一勤天下无难事,处世无难忍最高。
3楼2012-07-15 12:39:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wzp0098

木虫 (著名写手)

引用回帖:
3楼: Originally posted by mei3014 at 2012-07-15 12:39:44
你的w又不是变量,怎么画二维图,除非w=10*ones(1,length(K))。
这样就要再用一个for循环,最后输出的P应该是201*201的矩阵,因为1*201的向量是画不了二维图的!

K = -50:0.1:50;W=-50:0.1:50;
P = [] % <---------添加此句分配P为向量
for n=1:length(K);
        K1 = K(n);
        m=1:length(W);
        w=W(m);
        x = 0.1;
        K2 = K1+2*w;
        r1 = 6.6; r2 = 0.001*r1; T = 3;
        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) =imag(Y(3)); % <---------P向量中的元素赋值
end
plot3(K,W,P)
4楼2012-07-15 14:56:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wzp0098

木虫 (著名写手)

引用回帖:
3楼: Originally posted by mei3014 at 2012-07-15 12:39:44
你的w又不是变量,怎么画二维图,除非w=10*ones(1,length(K))。
这样就要再用一个for循环,最后输出的P应该是201*201的矩阵,因为1*201的向量是画不了二维图的!

在这里  
w ;      
K2 ;
K1 ;
x ;
T;
都可以是变量的,但是我没办法画出二维图,下的程序运行不起来。求指教!谢谢!
5楼2012-07-15 15:00:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wzp0098

木虫 (著名写手)

如果有大虾能够解决这个问题,将翻倍酬谢!
6楼2012-07-15 15:02:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mei3014

金虫 (正式写手)

木有头屑

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
wzp0098: 金币+100, ★★★很有帮助, 非常谢谢!受教了!高人 2012-07-16 12:47:54
xiegangmai: 金币+3, 谢谢应助! 2012-07-16 23:48:59
引用回帖:
4楼: Originally posted by wzp0098 at 2012-07-15 14:56:28
K = -50:0.1:50;W=-50:0.1:50;
P = [] % <---------添加此句分配P为向量
for n=1:length(K);
        K1 = K(n);
        m=1:length(W);
        w=W(m);
        x = 0.1;
        K2 = K1+2*w;
   ...

1)你的循环次数太多,循环里面又是矩阵运算,要是将for语句也改成矩阵形式很难,建议减少向量长度或增大间距。
2)i是复数吧,matlab里面最好用1i表示,防止与变量i混淆。
3)程序我暂时改成如下所示,是不是你期待的结果我也不知道!
clc;clear
K = -50:1:50;W=-50:1:50;
P = []; % <---------添加此句分配P为向量
for n=1:length(K);
        K1 = K(n);
     for   m=1:length(W);
        w=W(m);
        x = 0.1;
        K2 = K1+2*w;
        r1 = 6.6; r2 = 0.001*r1; T = 3;
        A=[  -r1   r2-r1  -1i*x      1i*x      0           0       0              0;
                  0    -r2       0       0       0           0      1i*T           -1i*T;
           -2*1i*x  -1i*x -r1-1i*K1*0.5 0     -1i*T          0       0              0;
                2*1i*x  1i*x       0  -r1+1i*K1*0.5 0          1i*T      0              0;
                  0     0      -1i*T      0 -r2-1i*(K1+K2)*0.5 0      1i*x             0;
                  0     0        0      1i*T      0 -r2+1i*(K1+K2)*0.5 0             -1i*x;
                 1i*T 2*1i*T       0       0      1i*x          0 -r2-r1+1i*(K1-K2)*0.5 0;
                -1i*T -2*1i*T      0       0       0         -1i*x      0 -r2-r1-1i*(K1-K2)*0.5];
        B = [-r1;0;-1i*x;1i*x;0;0;1i*T;-1i*T];
        Y = A\B;
    P(m,n) =imag(Y(3)); % <---------P向量中的元素赋值
     end
end
[X,Y]=meshgrid(K,W);
plot3(X,Y,P)
xlabel('K')
ylabel('W')
zlabel('P')
一勤天下无难事,处世无难忍最高。
7楼2012-07-16 11:28:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mei3014

金虫 (正式写手)

木有头屑


xiegangmai: 金币+1, 辛苦了! 2012-07-16 23:49:08
[X,Y]=meshgrid(K,W);
plot3(X,Y,P)
以上两条还是改成
[X1,Y1]=meshgrid(K,W);
plot3(X1,Y1,P)
一勤天下无难事,处世无难忍最高。
8楼2012-07-16 11:30:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wzp0098 的主题更新
信息提示
请填处理意见