找回密码
 注册
关于网站域名变更的通知
查看: 372|回复: 3
打印 上一主题 下一主题

为什么循环的结果都一样

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2023-1-10 15:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
G=6.67*10^(-11);
! R5 R6 L" B4 ?$ l# r6 D2 r  Fr=100;# V* n/ E3 k6 O- a( ^
h=500;( u- _. l3 \7 P, y' q! e
m=0.1*(4/3)*pi*r^3;1 T) n4 g+ X% J# d( Y" E/ b% a
g=zeros(41,41);) C+ p( o/ a0 z
for x=-1000:50:10006 S, N+ [/ c! I+ b% S& }# p
    for y=-1000:50:1000
! C3 Q( a" Z# ~        g(1:41,: )=G*m*h/((x^2+y^2+h^2)^(3/2));2 R: B7 t8 q$ s: P
    end
( U' A! J  ]2 `4 ^end
' u' h0 K# l( w% L/ s1 F8 \# U( u% ?
  • TA的每日心情
    开心
    2022-1-21 15:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2023-1-10 16:54 | 只看该作者
    你的赋值语句不对,循环中每次赋值都是给g矩阵的整体赋值,所以结果就是最后一次循环给g整体赋值的结果8 H& T$ O# D) G5 f4 L' [% C& y
    x=-1000:50:1000;+ i  B# E: p: Z
    y=-1000:50:1000;
    9 S: K! z  I) h: t5 i4 t0 R1 E: `1 V; rfor i=1:41+ _" \5 Y3 `& k2 Z7 x2 j0 D
        for j=1:414 [# r/ b/ z9 }% W
            g(i,j)=G*m*h/((x(i)^2+y(j)^2+h^2)^(3/2));
    - D/ i+ C( \4 R0 O- }    end
    " H  Q. B) {+ x2 D5 iend
    ; S4 `2 ^: l  o复制代码
    , I1 p) M# f: J/ u1 }看一下这是不是你要的结果,如果不是请自己理解并修改一下吧。

    该用户从未签到

    3#
    发表于 2023-1-10 17:06 | 只看该作者
    这严格来说就不是MATLAB问题,是你循环逻辑写错了,你在循环中没有控制变量,在不停地重复相同的赋值。打个比方,裁缝店来了高个子客人应该给长衣服,来了胖客人应该给宽衣服,裁缝店这个提供衣服的循环,应当根据控制变量也就是客人的具体身材,进行控制。可你现在这个循环,实质上是不管来了什么身材的客人,统统扔出来41*41套一模一样的衣服。( C9 ~+ w) P% F2 Q* p* `: v1 M: O$ a
    改成
    2 d0 L" P" k- V0 @2 v* E/ ExSet = -1000:50:1000;
    5 A6 `# q6 v8 y9 SySet = -1000:500:1000;' K3 B' ]6 r, i" S0 k) I9 l
    for index_row = 1 : 1 : numel( xSet )5 ]$ {' i- p; H# {- `& |; a9 i6 D
        x = xSet( index_row );
    : L* a/ ~0 _( Q4 m8 X8 A7 x6 a6 @    for index_column = 1 : 1 : numel( ySet )
    # U4 q6 @- ?0 w4 T0 z( T% G! a5 b        y = ySet( index_column );1 |% }, {7 G+ ], l2 D, M+ p
            g( index_row, index_column ) = G * m * h / ( ( x^2 + y^2 + h^2 ) ^ ( 3/2 ) );
    ! ]% i5 t" c* I) S    end1 _1 L$ }9 D: Z# ]; Q
    end
  • TA的每日心情
    开心
    2022-1-29 15:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    4#
    发表于 2023-1-10 17:09 | 只看该作者
    这么改也可以:0 ]3 I$ g1 H3 m! e  H( F
    clear;clc
    4 L1 S; o% k) K) T
    2 j1 J* o' h: v  R7 xG=6.67*10^(-11);* g' \' X' G% n% ]  {
    r=100;8 Y" z' i/ J0 }/ V' o, _8 u
    h=500;
    4 Y7 b/ G. a$ _" B$ I* y& q6 dm=0.1*(4/3)*pi*r^3;0 M4 H. N6 E* y6 F
    g=zeros(41,41);: F  {6 F6 D& h/ R$ g; P6 `. D
    2 x; E9 T, Z) m/ E' P
    i = 0;0 B" ^4 C4 H7 O: @! [( F: J
    for x=-1000:50:10003 T" K! S& r1 l/ O- |' y- x
        i = i + 1;
    + i% I) _0 u5 H2 U" Q/ l( U    y = -1000:50:1000;0 v# ?" \! f7 q) d8 Z
        g(i,: )=G*m*h./((x^2+y.^2+h^2).^(3/2));* ?, b5 U8 [( I, }6 |
    end
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-1 12:52 , Processed in 0.109375 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表