24小时热门版块排行榜    

CyRhmU.jpeg
查看: 761  |  回复: 8

zxdqingyuan

铜虫 (初入文坛)

[求助] 请高手指点一下已有2人参与

>>    clear
        lam=600e-9;                                          
        a=2e-3;                                                
        D=1;                                                  
        ym=5*lam*D/a;                                                                                          
        n=50;
        ys=linspace(-ym,ym,n);
      for i=1:n
            r1=sqrt((ys(i)-a/2).^2+D^2);
        end
计算后的结果r1怎么是1呢,应该是一个1*n的向量啊?
     clear
        lam=600e-9                                                
        a=2e-3;                                                  
        D=1;                                                
        ym=5*lam*D/a;                                                                                       
        n=101;
        ys=linspace(-ym,ym,n);
         xs=ys;
          [X,Y]=meshgrid(xs,ys);
            r1=sqrt((Y-a/2).^2+D^2);
同理,这样算出的r1也是一个单值,帮忙解答一下,不胜感激。
回复此楼

» 猜你喜欢

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

明月松间照,清泉石上流
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

胡海浪

金虫 (小有名气)


jjdg: 金币+1, 感谢参与 2015-12-12 11:29:39
把r1改成r1(i),这是把结果写进一个向量

发自小木虫Android客户端
2楼2015-12-12 11:17:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Op_liu

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★
感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2015-12-12 11:29:46
zxdqingyuan: 金币+3, 有帮助 2015-12-12 19:11:42
第一个,把r改成r(i),道理应该你懂;
第二个,看你的Y变量是什么;

可以多看看matlab编程的书,细节方面的,希望对你有用

发自小木虫Android客户端
3楼2015-12-12 11:21:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zxdqingyuan

铜虫 (初入文坛)

引用回帖:
2楼: Originally posted by 胡海浪 at 2015-12-12 11:17:04
把r1改成r1(i),这是把结果写进一个向量

>>    clear
        lam=600e-9;                                          
        a=2e-3;                                                
        D=1;                                                  
        ym=5*lam*D/a;                                                                                          
        n=50;
        ys=linspace(-ym,ym,n);
            r1=sqrt((ys-a/2).^2+D^2);
改成这样,r1还是一个固定值,而不是向量,求解?
明月松间照,清泉石上流
4楼2015-12-12 11:31:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zxdqingyuan

铜虫 (初入文坛)

引用回帖:
3楼: Originally posted by Op_liu at 2015-12-12 11:21:17
第一个,把r改成r(i),道理应该你懂;
第二个,看你的Y变量是什么;
可以多看看matlab编程的书,细节方面的,希望对你有用

>>    clear
        lam=600e-9;                                          
        a=2e-3;                                                
        D=1;                                                  
        ym=5*lam*D/a;                                                                                          
        n=50;
        ys=linspace(-ym,ym,n);
            r1=sqrt((ys-a/2).^2+D^2);
变成最简单形式,结果还是一个固定值,而不是向量,求解?
明月松间照,清泉石上流
5楼2015-12-12 11:32:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

胡海浪

金虫 (小有名气)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
zxdqingyuan: 金币+2, 有帮助 2015-12-12 19:11:22
引用回帖:
4楼: Originally posted by zxdqingyuan at 2015-12-12 11:31:15
>>    clear
        lam=600e-9;                                          
        a=2e-3;                                                
        D=1;                                     ...

第一段程序里面不是有个for循环么,r(i)是放在循环里面的,这样第i次循环,计算结果就记录到r(i)里面了

发自小木虫Android客户端
6楼2015-12-12 11:35:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zxdqingyuan

铜虫 (初入文坛)

引用回帖:
2楼: Originally posted by 胡海浪 at 2015-12-12 11:17:04
把r1改成r1(i),这是把结果写进一个向量

刚才打错了,应该是
     clear
        lam=600e-9;                                          
        a=2e-3;                                                
        D=1;                                                  
        ym=5*lam*D/a;                                                                                          
        n=50;
        ys=linspace(-ym,ym,n);
            r1=sqrt((ys-a/2).^2+D^2);
改成这样,r1就是个向量了,但所有元素值都是一个固定值,求解?
明月松间照,清泉石上流
7楼2015-12-12 11:36:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zxdqingyuan

铜虫 (初入文坛)

引用回帖:
3楼: Originally posted by Op_liu at 2015-12-12 11:21:17
第一个,把r改成r(i),道理应该你懂;
第二个,看你的Y变量是什么;
可以多看看matlab编程的书,细节方面的,希望对你有用

刚才打错了,应该是
     clear
        lam=600e-9;                                          
        a=2e-3;                                                
        D=1;                                                  
        ym=5*lam*D/a;                                                                                          
        n=50;
        ys=linspace(-ym,ym,n);
            r1=sqrt((ys-a/2).^2+D^2);
改成这样,r1就是个向量了,但所有元素值都是一个固定值,应该是不同的值啊,求解?
明月松间照,清泉石上流
8楼2015-12-12 11:36:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Op_liu

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★
zxdqingyuan: 金币+5, ★★★很有帮助 2015-12-12 19:11:04
引用回帖:
8楼: Originally posted by zxdqingyuan at 2015-12-12 11:36:31
刚才打错了,应该是
     clear
        lam=600e-9;                                          
        a=2e-3;                                                
        D=1;                        ...

你的r1并不是一个固定值,打开你的r1变量看看就知道了,因为你的ys和a差不多,r1近似等于D了,r1都是1.000003左右,所以你看着都是1
9楼2015-12-12 11:50:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zxdqingyuan 的主题更新
信息提示
请填处理意见