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

循环问题,两次循环不一致

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2023-2-8 13:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
通过改变num的值计算不同层数的值,需要记忆前一个值3 M$ w% F7 E- S& p% [3 \! r* Z- Z! ?$ B
* h. S# w" y" K. B) l( v5 E
理论上不管num 为几 第一个值不会变的
5 O5 ~: i" O, f但是
+ G" _7 f0 j: o3 Wnum = 1 时得到第一个值
* X9 D! Y8 I! K/ g* Y+ i2 h& ?
+ L& F" \8 ]  knum = 2时得到两个值 但是,第一个值和前面num=1的值不一样是怎么回事4 s# G6 R3 c+ `6 X% E6 J
           
0 A% D8 Q9 I& s0 P8 l/ a( P
$ a9 D8 W, o% y" }( T各位大大帮忙看下,不然睡不成觉了3 B0 _8 \, Q: d6 \
部分程序如下num = 2; %设置层数3 y1 @7 g. U6 o( W" e1 d

+ \' D2 b& n; Y! Q1 N0 u3 G/ k
        g=linspace(1,2.4,200);
/ J  I; A; E- i
        for x=g1 L) U' Z& L; n' G) f3 e" X
                %循环镶嵌处( c% y0 T) @! f7 X, w9 B
            for len =1:1:num  %len为厚度; J0 ^" f6 l0 t+ S# p& u
                F1=2*pi*na*d1*cos(c2)/x;* H6 _7 Q2 s8 Q: @  q6 q  _3 h
                M1=[cos(F1),i*sin(F1)/p1;i*p1*sin(F1),cos(F1)];
1 B- D* z2 I4 W1 J  B4 z& A
- }) d% m3 q4 \0 J7 c8 _7 G$ z& b! V; \
                d2 = d2 - 0.005*(len-1);% 厚度
  m  p! a9 x, {7 @% s
0 {; i/ N: }2 B5 o
                F2{len,1}=2*pi*nb*d2*cos(c3)/x; %第len层 角度
2 ]. Z( o% R# h- U- ?6 [. j
                M2{len,1}=[cos(F2{len,1}),i*sin(F2{len,1})/p2;i*p2*sin(F2{len,1}),cos(F2{len,1})]; %len层 矩阵表示
* W$ ?. X# w# O' d) r# v. Y2 K, ?, e
: ], ]  n  O7 O$ \- G6 X& k) Y
                temp{len,1} = M1 * M2{len,1}; % 矩阵A 乘 矩阵 B(len)  得到num个 A B 相乘的矩阵; @. x5 `5 m. i. K3 b& H
                result = [1,0;0,1]; %初值为单位矩阵9 Y  ]1 \2 K$ t
                result = result * temp{len,1};%得到中间所有矩阵的乘积
$ h+ [) J- n# J% s
          end  G9 \% m( x. }$ g% j% {2 [" [

. ?# g  D, |6 ?

; O2 i& N5 n- E5 c5 u6 R7 U: B% v# h+ i
3 x, e$ L: R4 _9 F& L1 Q; `& f

该用户从未签到

2#
发表于 2023-2-8 14:57 | 只看该作者
你的M2{len,1}是由F2{len,1}计算出来的,而5 C& ?$ w4 m' U) m- ]7 u4 _
F2{len,1}=2*pi*nb*d2*cos(c3)/x;
7 m  k7 H" [! r0 t) O! E  M你应该分析F2在num发生变化时状况,例如你这里的d2,在num不同时- x1 _8 {: P4 `$ U, o
d2 = d2 - 0.005*(len-1);2 P5 z* ?, R" \1 m0 M. w) z
恐怕d2得到的值也会不一样,另外还有你没有给出的nb和c3+ D7 O$ v: e7 ~* ~1 N
这些都要你一步步分析的,而不是盯着M2奇怪就能解决问题的

点评

找到个错误 就是 result = [1,0;0,1]; 初值应该在第一个循环里面第二个循环外面 具体不知道哪儿错了 变的就只有d2 从而试F2 M2 变化其余都是已知的  详情 回复 发表于 2023-2-8 15:10

该用户从未签到

3#
 楼主| 发表于 2023-2-8 15:10 | 只看该作者
Tdongxue 发表于 2023-2-8 14:57
& {5 G4 P4 I* h+ j+ E& g: P你的M2{len,1}是由F2{len,1}计算出来的,而. A4 b6 N  J% J5 Y
F2{len,1}=2*pi*nb*d2*cos(c3)/x;
/ Q" n7 m# ~: L0 b1 {4 x2 o9 U你应该分析F2在num发生变化 ...
) i0 u9 r% k' `. A2 O* O- ~
找到个错误 就是 result = [1,0;0,1]; 初值应该在第一个循环里面第二个循环外面; P9 U* y! w) I, r* Q2 P
具体不知道哪儿错了 变的就只有d2 从而试F2 M2 变化其余都是已知的! c- ?% q* p( [& ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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