24小时热门版块排行榜    

查看: 1908  |  回复: 9

wzp0098

木虫 (著名写手)

[求助] 利用for 语句画图

K=-10:1:10;
for m=1:K;
    K1=Length(K)
    w=10;
K2=K1+2*w;x=0.2;
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;
y=imag(Y(3));
end
plot(K,y)
我想利用for循环语句画出图形,可是无法运行,求大虾赐教!
回复此楼

» 猜你喜欢

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

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

fjtony163

版主 (文坛精英)

米米

优秀版主优秀版主优秀版主优秀版主优秀版主

【答案】应助回帖

★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
xiegangmai: 金币+1, 谢谢参与 2012-07-08 09:54:21
wzp0098: 金币+5, 有帮助 2012-07-08 11:11:48
K 是一个行向量,m定义为1到一个行向量肯定运行不了啊。m指的是循环次数,应该就是m=1:10这样的。能稍微具体说下是个怎样的式子么。
2楼2012-07-08 09:19:50
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

wzp0098

木虫 (著名写手)

引用回帖:
2楼: Originally posted by fjtony163 at 2012-07-08 09:19:50
K 是一个行向量,m定义为1到一个行向量肯定运行不了啊。m指的是循环次数,应该就是m=1:10这样的。能稍微具体说下是个怎样的式子么。

谢谢,我就是想画出y随K1变化的图像!K1取一个值,就可以得到一个y值,利用for语句循环。做了修改,还是不行!
K1=-10:1:10;
for m=1:Length(K);
    K1=m
    w=10;
K2=K1+2*w;x=0.2;
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;
y=imag(Y(3));
end
plot(K1,y)
3楼2012-07-08 11:17:39
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

fjtony163

版主 (文坛精英)

米米

优秀版主优秀版主优秀版主优秀版主优秀版主

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★
臭水沟: 金币+2, 谢谢交流~~ 2012-07-08 18:02:36
wzp0098: 金币+5, 有帮助, 谢谢 2012-07-09 10:30:27
引用回帖:
3楼: Originally posted by wzp0098 at 2012-07-08 11:17:39
谢谢,我就是想画出y随K1变化的图像!K1取一个值,就可以得到一个y值,利用for语句循环。做了修改,还是不行!
K1=-10:1:10;
for m=1:Length(K);
    K1=m
    w=10;
K2=K1+2*w;x=0.2;
r1=8;r2=0.001*r1;T=3 ...

从中间的赋值到end之前的部分我不知道是啥,但只要你认为输对了就没事。

关键是赋值之前的部分,就我的理解应该是
K=-10:1:10
for m=1:length(K)
K1=K(m)
w=10;
………………
4楼2012-07-08 11:30:10
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

wzp0098

木虫 (著名写手)

引用回帖:
4楼: Originally posted by fjtony163 at 2012-07-08 11:30:10
从中间的赋值到end之前的部分我不知道是啥,但只要你认为输对了就没事。

关键是赋值之前的部分,就我的理解应该是
K=-10:1:10
for m=1:length(K)
K1=K(m)
w=10;
………………...

根据你的意见,我做了些修改,具体如下,
K=-10:0.1:10;
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=imag(Y(3));
end
plot(K,P)
但是得不到我想要的图形,望赐教!
从中间的赋值到end之前的部分是矩阵求解过程。
5楼2012-07-09 10:29:59
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

fjtony163

版主 (文坛精英)

米米

优秀版主优秀版主优秀版主优秀版主优秀版主

【答案】应助回帖

★ ★ ★ ★ ★
wzp0098: 金币+5, 谢谢 2012-07-09 11:16:55
引用回帖:
5楼: Originally posted by wzp0098 at 2012-07-09 10:29:59
根据你的意见,我做了些修改,具体如下,
K=-10:0.1:10;
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=;
B=;
Y=A\B;
P=imag(Y(3));
end
plot(K,P)
但是得不 ...

中间求解过程你确定对了么。。。我是弄不太清楚求解的东西。
6楼2012-07-09 10:58:10
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
wzp0098: 金币+30, ★★★很有帮助, 牛人!! 2012-07-09 11:16:29
臭水沟: 金币+3, 谢谢交流~~ 2012-07-09 21:24:09
function parafit
K=-10:0.1:10;
P=0*K;
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));
end
plot(K,P)
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.
7楼2012-07-09 11:05:11
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

duotojh

金虫 (小有名气)

★ ★
臭水沟: 金币+2, 谢谢交流~~ 2012-07-09 21:24:26
你的意图应该是每轮循环算出的P连接成曲线,但程序中保留的是最后一轮P值(单值),
因此画出的图形是单点当然看不到(除非将单点作标记才可以看到,例如三角符标记等等)
只需添加P向量化,并修改循环语句中的P赋值这一句即可,修改程序如下:
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)
用freemat画出的图形如下
8楼2012-07-09 13:06:49
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

wzp0098

木虫 (著名写手)

引用回帖:
7楼: Originally posted by dbb627 at 2012-07-09 11:05:11
function parafit
K=-10:0.1:10;
P=0*K;
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=;
B=;
Y=A\B;
P(n)=imag(Y(3));
end
plot(K,P)...

我如果想画出P有关(K1,w)的二维图像,怎么处理?请牛人指教!谢谢!
9楼2012-07-09 18:24:16
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

duotojh

金虫 (小有名气)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
xiegangmai: 金币+1, 谢谢应助 2012-07-10 11:13:40
wzp0098: 金币+2, 请给出程序 2012-07-11 09:57:41
引用回帖:
9楼: Originally posted by wzp0098 at 2012-07-09 18:24:16
我如果想画出P有关(K1,w)的二维图像,怎么处理?请牛人指教!谢谢!...

将 plot 用 scatter 替换即可
10楼2012-07-10 10:51:42
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wzp0098 的主题更新
信息提示
请填处理意见