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

为什么循环的结果都一样

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
G=6.67*10^(-11);
$ L* k* i3 T6 G4 I  L  q6 e% `( er=100;) y. o, b8 f, q! D7 n$ K
h=500;8 W/ L" I; s- g" C( Y1 n8 }. S2 m
m=0.1*(4/3)*pi*r^3;
- l6 D% f, H+ P- _. V1 wg=zeros(41,41);
  n6 g( Q# t$ W! }" F% n' Afor x=-1000:50:1000
$ K( H. S2 O9 |2 B% w    for y=-1000:50:1000* ~% C$ a: ~0 @* f
        g(1:41,: )=G*m*h/((x^2+y^2+h^2)^(3/2));
0 S" E0 P: w4 G# ]" C9 T    end3 v8 I! ?+ ]9 ^  |0 L$ r* y! i
end
: N7 c6 X$ z0 E+ z. }6 o4 Z( R* m$ ^& W6 v% w: I' i" J# j/ r( j
  • TA的每日心情
    开心
    2022-1-21 15:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2023-1-10 16:54 | 只看该作者
    你的赋值语句不对,循环中每次赋值都是给g矩阵的整体赋值,所以结果就是最后一次循环给g整体赋值的结果& }' [3 Z5 v# t3 B
    x=-1000:50:1000;4 K; r1 f* B7 T) h9 u& z
    y=-1000:50:1000;9 i+ ]3 I1 d* ^$ e
    for i=1:41
    ; V0 a3 W1 V6 ~# X    for j=1:41
      c4 I/ f/ _$ c* A1 X        g(i,j)=G*m*h/((x(i)^2+y(j)^2+h^2)^(3/2));
    " h  h1 w- G- @8 I3 f  p! P( C    end
    0 z" }0 {- ]& L& K; N0 ^end
    9 N. g& l7 ^( y0 i5 s( E6 y9 E复制代码
    1 E, J1 m( h6 R: {7 V0 n看一下这是不是你要的结果,如果不是请自己理解并修改一下吧。

    该用户从未签到

    3#
    发表于 2023-1-10 17:06 | 只看该作者
    这严格来说就不是MATLAB问题,是你循环逻辑写错了,你在循环中没有控制变量,在不停地重复相同的赋值。打个比方,裁缝店来了高个子客人应该给长衣服,来了胖客人应该给宽衣服,裁缝店这个提供衣服的循环,应当根据控制变量也就是客人的具体身材,进行控制。可你现在这个循环,实质上是不管来了什么身材的客人,统统扔出来41*41套一模一样的衣服。# N, d8 ~! y6 N/ k$ w3 V* F' Z) E
    改成
    2 T9 N7 d. V( M/ S9 HxSet = -1000:50:1000;' f" D9 s* t0 H
    ySet = -1000:500:1000;
    . s: d3 i5 T. r: f- \for index_row = 1 : 1 : numel( xSet ), \" ?: }% M, j" S/ ~, x
        x = xSet( index_row );
    ! V. h0 L& p! d    for index_column = 1 : 1 : numel( ySet )/ c9 P) a. ~# R% k, [: S* i2 Q0 j" d( w
            y = ySet( index_column );
    3 W+ n& r7 F8 K3 ?        g( index_row, index_column ) = G * m * h / ( ( x^2 + y^2 + h^2 ) ^ ( 3/2 ) );( ^8 _3 f0 g8 O/ ~2 W) J
        end' P9 ]. [8 @, [2 K9 j) |' p+ ?
    end
  • TA的每日心情
    开心
    2022-1-29 15:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    4#
    发表于 2023-1-10 17:09 | 只看该作者
    这么改也可以:8 v4 |* S' E+ }( L5 c* K2 d
    clear;clc
    * i" A$ E) t& f! [; r: s) V5 g- r$ x
    G=6.67*10^(-11);' a; J/ @, z9 [. g
    r=100;
    3 O* m5 Z4 y; R! Uh=500;' R5 P4 k! R9 E" [/ g
    m=0.1*(4/3)*pi*r^3;* }* ~/ c4 v6 m- T( n- W. p5 J+ c
    g=zeros(41,41);+ l( z9 m, Z- [

    / X  u# J: k, B3 _# D' }i = 0;
    # L, N9 m5 n; Z: [& Ffor x=-1000:50:1000
    * W) {. F5 ^; l7 O1 n! v9 [3 l    i = i + 1;
    ' u  }$ j9 Q8 R6 n4 H% L: y+ ]    y = -1000:50:1000;5 K$ ^8 T/ C0 l3 M
        g(i,: )=G*m*h./((x^2+y.^2+h^2).^(3/2));7 j( o; _. h$ p4 P
    end
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-23 17:00 , Processed in 0.171875 second(s), 23 queries , Gzip On.

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

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

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