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

为什么循环的结果都一样

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
G=6.67*10^(-11);3 `/ P# p: ?6 }$ s: Z$ R# J
r=100;
/ @( Q7 j  k( w7 eh=500;* a+ l! Z2 W, _1 [2 o
m=0.1*(4/3)*pi*r^3;
7 X9 z; i) w/ z  ~" m0 qg=zeros(41,41);
# [( j) C& Q" u0 ?; nfor x=-1000:50:10007 r/ g! I! w) p) C: ^
    for y=-1000:50:1000
' c0 _) L- H1 D        g(1:41,: )=G*m*h/((x^2+y^2+h^2)^(3/2));7 J7 {5 D' U0 v* o6 ?$ q& s) c3 c
    end) [2 `5 [/ B! y; L, d, M
end% c8 I6 Z2 j- p) h! s
) ^3 o' @5 u# s- ^0 H/ \3 k: R
  • TA的每日心情
    开心
    2022-1-21 15:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2023-1-10 16:54 | 只看该作者
    你的赋值语句不对,循环中每次赋值都是给g矩阵的整体赋值,所以结果就是最后一次循环给g整体赋值的结果4 Q3 U, u' `+ o  _7 r) v0 H0 X
    x=-1000:50:1000;7 e' v4 W: {6 k9 Q$ h
    y=-1000:50:1000;' W0 h' |- T, S0 K
    for i=1:41# p, o" l7 V8 e% _+ ?
        for j=1:419 Q  _% S5 f- C, a/ h
            g(i,j)=G*m*h/((x(i)^2+y(j)^2+h^2)^(3/2));
    3 J9 O% N% N. D8 a4 x    end
    3 [& a  V% K0 ~) Q4 z- Gend; l, c- F6 i1 i  w% C- V
    复制代码
      j, i3 m6 R2 I7 J, n9 w" X看一下这是不是你要的结果,如果不是请自己理解并修改一下吧。

    该用户从未签到

    3#
    发表于 2023-1-10 17:06 | 只看该作者
    这严格来说就不是MATLAB问题,是你循环逻辑写错了,你在循环中没有控制变量,在不停地重复相同的赋值。打个比方,裁缝店来了高个子客人应该给长衣服,来了胖客人应该给宽衣服,裁缝店这个提供衣服的循环,应当根据控制变量也就是客人的具体身材,进行控制。可你现在这个循环,实质上是不管来了什么身材的客人,统统扔出来41*41套一模一样的衣服。
    : f  K. A$ q% Y. W9 k: l- q改成$ ]8 x( v8 ]; L( i% j
    xSet = -1000:50:1000;
    : r# @+ A) r% [& ]  l/ D# ~ySet = -1000:500:1000;5 ]6 @- b, @0 E5 `- z; |
    for index_row = 1 : 1 : numel( xSet )+ b( M* c7 V, D" A$ _' G6 A) U& K* Q) x
        x = xSet( index_row );
    ; R9 K9 @+ |3 y    for index_column = 1 : 1 : numel( ySet )3 n. F) J: s3 W
            y = ySet( index_column );: H; E& |" i* T
            g( index_row, index_column ) = G * m * h / ( ( x^2 + y^2 + h^2 ) ^ ( 3/2 ) );
    & t; T" z/ J% _8 {9 r! |& g' O/ h    end& d! o9 c7 p3 ~4 j8 Z8 O
    end
  • TA的每日心情
    开心
    2022-1-29 15:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    4#
    发表于 2023-1-10 17:09 | 只看该作者
    这么改也可以:7 l8 g9 t/ n. z' ]5 `% t/ A
    clear;clc
    # n+ `" x2 ^; P) e6 p: w: _: a" a
    & ?8 S8 g2 z5 z- z+ R3 C9 i' e  SG=6.67*10^(-11);
    0 B/ B5 _' b) T  Q& F9 N9 nr=100;: V" ?6 P* }1 T( h8 ]2 d
    h=500;
    / d3 b1 H+ q6 K4 dm=0.1*(4/3)*pi*r^3;5 T" s5 ^- N2 P
    g=zeros(41,41);
    0 h( t/ ~2 d2 b1 U9 D  a" |# O7 [3 V+ F! V$ T" A: B3 ]
    i = 0;$ e! f7 x# l6 g5 C) s" Y+ b
    for x=-1000:50:1000  h) W, M5 H+ y3 t& b  x/ K7 M
        i = i + 1;
    & U: |+ X' b4 H% t8 |3 a    y = -1000:50:1000;% y$ f" ?$ Q) n: s) r
        g(i,: )=G*m*h./((x^2+y.^2+h^2).^(3/2));5 ~, V  R7 i) ~
    end
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

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

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

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

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