找回密码
 注册
查看: 341|回复: 3
打印 上一主题 下一主题

为什么循环的结果都一样

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
G=6.67*10^(-11);
5 J* G' }; O6 o* h5 ~r=100;
& O* ~$ ~# u- Z0 lh=500;6 _; u3 j7 f( y* R) S
m=0.1*(4/3)*pi*r^3;
6 T8 @8 x& B5 w; y) hg=zeros(41,41);! n* c2 t0 D8 l+ S+ g
for x=-1000:50:1000
- U7 P! Q2 g4 q( R2 I    for y=-1000:50:1000( O# _) x9 q6 r4 @
        g(1:41,: )=G*m*h/((x^2+y^2+h^2)^(3/2));2 ?2 k  B* P& g, M1 a% u
    end+ V3 ~# ?$ B0 Y! J- s
end
, q! K: v' p" l  w) f+ e0 T
9 K4 K! C. \( t9 _8 F
  • TA的每日心情
    开心
    2022-1-21 15:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2023-1-10 16:54 | 只看该作者
    你的赋值语句不对,循环中每次赋值都是给g矩阵的整体赋值,所以结果就是最后一次循环给g整体赋值的结果
    * `* U3 x/ U9 \& C2 x* ox=-1000:50:1000;6 L% e8 ?0 R: g: R% u
    y=-1000:50:1000;
    " u8 j# v, ?4 s6 r5 X$ mfor i=1:41
    2 z, n" J# B3 Q& [6 }# x9 k    for j=1:41' s8 ^, H7 _6 W8 @3 Z
            g(i,j)=G*m*h/((x(i)^2+y(j)^2+h^2)^(3/2));
    7 \5 [2 D6 S, O: P* H4 F* Y, k+ N    end" i+ A  b* `  r4 l! w; o
    end
    " v% i$ S9 g' i5 }+ p5 `! R复制代码
    1 y5 k1 w$ B" A看一下这是不是你要的结果,如果不是请自己理解并修改一下吧。

    该用户从未签到

    3#
    发表于 2023-1-10 17:06 | 只看该作者
    这严格来说就不是MATLAB问题,是你循环逻辑写错了,你在循环中没有控制变量,在不停地重复相同的赋值。打个比方,裁缝店来了高个子客人应该给长衣服,来了胖客人应该给宽衣服,裁缝店这个提供衣服的循环,应当根据控制变量也就是客人的具体身材,进行控制。可你现在这个循环,实质上是不管来了什么身材的客人,统统扔出来41*41套一模一样的衣服。4 D: |& r( w% `, C
    改成
    $ p5 f! A9 }0 }  U' ]4 e. L% KxSet = -1000:50:1000;
      }4 g( m6 |$ n' X1 `6 ~  tySet = -1000:500:1000;1 s! B8 [) x& [: ?# i; c
    for index_row = 1 : 1 : numel( xSet )
    # v. I' \% _0 x) i5 g& @$ W    x = xSet( index_row );9 |: Q+ ~! n5 p9 r& f9 c) y
        for index_column = 1 : 1 : numel( ySet )4 `- l" U" V7 t# Z
            y = ySet( index_column );
    - c$ }! Y! j+ V8 i8 W; f: w        g( index_row, index_column ) = G * m * h / ( ( x^2 + y^2 + h^2 ) ^ ( 3/2 ) );% H# A& K  [# c; p
        end1 Y; u7 g3 w7 N2 Q$ u4 F
    end
  • TA的每日心情
    开心
    2022-1-29 15:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    4#
    发表于 2023-1-10 17:09 | 只看该作者
    这么改也可以:9 @, i5 ~$ a+ C2 x7 O6 e* B
    clear;clc- T+ N/ W; Q. [$ f) x" \5 Y, t
    7 S' X$ s& t# t! l6 [% G3 X) e2 u/ ^
    G=6.67*10^(-11);5 |6 K2 A' N1 Y; J- B
    r=100;" G, E5 c0 @3 N1 A; ?
    h=500;3 I: ]1 i  L) H
    m=0.1*(4/3)*pi*r^3;
    * P6 F  n+ [& d, e  l  ?+ Tg=zeros(41,41);  D1 p+ }* p4 P

    ; i/ V$ l3 ~3 M: T; U1 {; Qi = 0;: [( f* a0 P: R* [1 U9 V
    for x=-1000:50:1000: N' p1 c; K# c& K
        i = i + 1;
    2 D9 f. i2 H) y7 s; o& U0 v& O: C    y = -1000:50:1000;; A( M' r/ ]$ f. C) ], T% }4 z
        g(i,: )=G*m*h./((x^2+y.^2+h^2).^(3/2));4 z% b- z. U8 T
    end
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-5-25 10:44 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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