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

为什么循环的结果都一样

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
G=6.67*10^(-11);# J. j  _" o1 y
r=100;3 A. ~4 g1 @+ [1 ~2 a( U
h=500;
0 ?6 D6 V9 c8 \/ K! Ym=0.1*(4/3)*pi*r^3;
7 _; Z! K# C9 _/ ag=zeros(41,41);
6 A  F+ l# H8 B1 \: j! Rfor x=-1000:50:1000
' I+ w! _; Y8 G4 Y2 k. |    for y=-1000:50:1000
& J) J% S! X+ N6 `2 q7 k        g(1:41,: )=G*m*h/((x^2+y^2+h^2)^(3/2));" C& J& B0 z' _
    end0 X7 B. @, V2 j  r( A
end) a; |8 }4 n/ I5 j6 v# u
9 X" W! N$ s* C/ ~8 k
  • TA的每日心情
    开心
    2022-1-21 15:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2023-1-10 16:54 | 只看该作者
    你的赋值语句不对,循环中每次赋值都是给g矩阵的整体赋值,所以结果就是最后一次循环给g整体赋值的结果
    . u+ y* D+ S. c/ W9 B1 R" T* T" Qx=-1000:50:1000;
    7 O/ C- _6 D- D& W( Ay=-1000:50:1000;
    % ]* Q0 H* H# R8 P4 K8 G* Efor i=1:41
    " {; V! d6 Y5 Z( F. l. G    for j=1:41
    " {2 N% V" a% O( M9 Z" T6 x        g(i,j)=G*m*h/((x(i)^2+y(j)^2+h^2)^(3/2));
    / T4 g0 o1 n5 n% ~3 C. Y8 ^2 _) z3 ]    end7 I0 O# P% D3 s2 q+ Z: ?
    end
    8 W) v% S( _, A; C# }复制代码
    : L' \/ K1 e2 m: F看一下这是不是你要的结果,如果不是请自己理解并修改一下吧。

    该用户从未签到

    3#
    发表于 2023-1-10 17:06 | 只看该作者
    这严格来说就不是MATLAB问题,是你循环逻辑写错了,你在循环中没有控制变量,在不停地重复相同的赋值。打个比方,裁缝店来了高个子客人应该给长衣服,来了胖客人应该给宽衣服,裁缝店这个提供衣服的循环,应当根据控制变量也就是客人的具体身材,进行控制。可你现在这个循环,实质上是不管来了什么身材的客人,统统扔出来41*41套一模一样的衣服。
    , C6 M, H, v  R" w改成6 C* N/ D( P3 r1 B
    xSet = -1000:50:1000;, {# ~1 o1 I/ |" p
    ySet = -1000:500:1000;
      f% ]! [7 ]) w4 y- f6 M7 q( ]for index_row = 1 : 1 : numel( xSet )  m. d" q  J5 x" g6 s, W( T- u
        x = xSet( index_row );3 ~/ [* x9 e8 W; \) m. Q$ O
        for index_column = 1 : 1 : numel( ySet )
    8 }0 l# [- E0 _$ ]* s+ C; r8 {( S- d% {/ N        y = ySet( index_column );
    / o7 b& a) e* I1 A" [7 s        g( index_row, index_column ) = G * m * h / ( ( x^2 + y^2 + h^2 ) ^ ( 3/2 ) );
    ) k7 K  Y7 b1 e/ V! P    end
      o2 u8 K2 t% G; c( o3 @1 _end
  • TA的每日心情
    开心
    2022-1-29 15:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    4#
    发表于 2023-1-10 17:09 | 只看该作者
    这么改也可以:( y& [/ r# O7 M+ Y" O) p8 D0 Q& E
    clear;clc
    3 H, Q- O, E4 j4 X: K4 v: l' r# q/ b4 Z
    G=6.67*10^(-11);
    - h4 `8 Q; p. l$ m$ s/ w) or=100;
    # Y8 b% N, M, [& t- E: A1 d3 `h=500;, L5 c, X" u8 q- t! P
    m=0.1*(4/3)*pi*r^3;
    . k% |$ @+ m0 @  U$ Z, @g=zeros(41,41);" l2 X! G8 u* ?, J9 E7 ]3 Q- B' F

    ! v, l2 N- y+ G% L* Gi = 0;! c1 f# Q5 e+ `
    for x=-1000:50:10003 X) l0 O7 s% Y) U
        i = i + 1;
    : Q" v- K" K" v" `% |" V# E6 a8 b1 u    y = -1000:50:1000;
    8 Z! G3 g$ [+ a% h& e& g    g(i,: )=G*m*h./((x^2+y.^2+h^2).^(3/2));- [+ I/ S& @8 r$ q  k; t8 {. Y
    end
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-28 00:10 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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