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

为什么循环的结果都一样

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
G=6.67*10^(-11);# i0 ~5 K1 e% `# z  T
r=100;  s) Y9 U( b$ S2 O
h=500;
$ g  B9 L( N4 k4 @6 f5 g1 g4 O; ym=0.1*(4/3)*pi*r^3;
6 M! E1 n& W/ L3 C9 b( Mg=zeros(41,41);& X4 U9 w) Z5 q4 f
for x=-1000:50:1000
2 M2 q  V& {! r    for y=-1000:50:1000
, j' V& R; P! c! _% ^" C, I        g(1:41,: )=G*m*h/((x^2+y^2+h^2)^(3/2));
2 S6 I1 U& \, D8 c    end0 ]( Y9 ]2 J( x# g6 c) Q
end8 S( t9 P) U* \$ Y7 S* K
% m% d/ `# F! c- e, w! R
  • TA的每日心情
    开心
    2022-1-21 15:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2023-1-10 16:54 | 只看该作者
    你的赋值语句不对,循环中每次赋值都是给g矩阵的整体赋值,所以结果就是最后一次循环给g整体赋值的结果
    # ?4 \7 Z- g9 }2 Q! S4 E8 F. Z2 Lx=-1000:50:1000;
    * g- n: G' B' ^$ _y=-1000:50:1000;
    ' b3 }8 j- R; Tfor i=1:41, R3 F( |  c! y3 V0 o* \( K) n
        for j=1:41' K, e4 b+ j& `) f. i
            g(i,j)=G*m*h/((x(i)^2+y(j)^2+h^2)^(3/2));
    7 T7 g4 V( N( H" h2 ]1 q# {    end
    : Y+ |+ N% ?( H) K2 ]  p: j; o7 B8 O! send6 X0 X% b& w6 E& N' t
    复制代码9 O/ H# {" b% b' N& x
    看一下这是不是你要的结果,如果不是请自己理解并修改一下吧。

    该用户从未签到

    3#
    发表于 2023-1-10 17:06 | 只看该作者
    这严格来说就不是MATLAB问题,是你循环逻辑写错了,你在循环中没有控制变量,在不停地重复相同的赋值。打个比方,裁缝店来了高个子客人应该给长衣服,来了胖客人应该给宽衣服,裁缝店这个提供衣服的循环,应当根据控制变量也就是客人的具体身材,进行控制。可你现在这个循环,实质上是不管来了什么身材的客人,统统扔出来41*41套一模一样的衣服。( S5 U4 ^9 @9 x" M! z8 }- T2 X" Z$ y
    改成: C7 u* Q3 d% X/ j
    xSet = -1000:50:1000;: C, }$ {* ~) J4 D
    ySet = -1000:500:1000;
    % a$ @8 @+ y- k* H2 P0 U7 B& vfor index_row = 1 : 1 : numel( xSet )' j  O3 l" Q$ `. E" V4 k
        x = xSet( index_row );! E  S. N% Z4 S% a& [/ L: H
        for index_column = 1 : 1 : numel( ySet )
    1 @0 x$ Z, x; L% s  {2 X        y = ySet( index_column );6 V9 v, h3 C. i$ c8 G8 y
            g( index_row, index_column ) = G * m * h / ( ( x^2 + y^2 + h^2 ) ^ ( 3/2 ) );2 [5 m7 R6 F3 D4 \- `( O1 T
        end
    ( [% F  g1 B0 |' Zend
  • TA的每日心情
    开心
    2022-1-29 15:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    4#
    发表于 2023-1-10 17:09 | 只看该作者
    这么改也可以:
    7 B% E& g0 H0 T4 _/ p+ Eclear;clc
    4 w* T( P  z* s; l+ Z  X4 m( U9 s* n, z) I
    G=6.67*10^(-11);# Y/ t3 I/ o4 v. Z- `$ a
    r=100;7 o8 w' d- g: P
    h=500;$ v6 Q7 X( O0 d1 M( S/ {5 l
    m=0.1*(4/3)*pi*r^3;
    $ A$ R6 t+ _. K" ?' q" fg=zeros(41,41);
    + U, \/ Z9 n+ T' _) D( ^9 _) B2 M* L7 Q+ Q. v
    i = 0;  |7 }# E3 l% W
    for x=-1000:50:1000
    6 B- ^; E( p& a9 t    i = i + 1;& @  p2 F1 s% ]* r7 D  j& M* \! R" u
        y = -1000:50:1000;
    8 _0 m/ a. i  y0 q    g(i,: )=G*m*h./((x^2+y.^2+h^2).^(3/2));# j" K6 i! E- O2 J; j
    end
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-24 09:29 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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