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

[仿真讨论] matlab仿真中一个运行错误

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
在仿真中,首先进行求出反解,然后运行如下程序:# _& x# I2 E; T) I% ?3 d1 q. F: Q
n=50;rou=300;lamt=2*pi;4 C; ]: b+ |2 G) `; v  j" J6 i
Zz=[300 400 500];9 c% y7 A  o2 k& X' O
Rou=rou*(0:n)/n;
+ y  }; B0 N3 B% ~  l- \Lamt=lamt*(0:n)/n;' ]9 ^$ l9 M; D+ Z5 `6 x
[Rou1 Lamt1]=meshgrid(Rou,Lamt);- j4 W  M( J- J* t
Xx=Rou1.*cos(Lamt1);  G& J9 o1 V, T" L
Yy=Rou1.*sin(Lamt1);
1 B7 P8 t5 C) r2 J" D  |( _2 J; mfai1=subs(faii,b,bb);' D8 E: u( q& b) f- n9 Y
for i=1:3* D, Y; {6 _0 g( }! s' H( z4 A
z=Zz(i);$ W7 m4 f$ ]9 b& H: N
for j=0:n
% v/ h6 q" J( s2 J/ Rfor k=0:n
5 S: e/ L( U4 v5 g( I* F* b, J& L) ?x=Xx(j+1,k+1);
. Y0 o+ ^% E4 ?$ e: m1 n8 |1 Ey=Yy(j+1,k+1);
0 P0 {! `4 }* ]; j0 a3 G6 f+ m( Hsita1=double(subs(sita,{rx,rz},{x,z}));6 L: @* c& p$ ?. I% U
c21=cos(sita1);
0 w0 I9 y/ ?) [- m0 D5 Z& G1 s& n& `s21=sin(sita1);+ y+ [% _+ ]& _: D9 @4 q
fai2=double(subs(fai1,{rx,ry,rz,s2,c2},{x,y,z,s21,c21}));
' u( f3 s; ?  C9 X' Yc31=cos(fai2);
8 w. p8 F# i3 N" ~9 K+ }+ t( ks31=sin(fai2);
- M! k4 {# s: S) P  qgang2{i,j+1,k+1}=subs(gang1,{rx,ry,rz,s2,c2,s3,c3},{x,y,z,s21,c21,s31,c31});0 f2 ~; R! [$ P+ H# s$ |) Z' o
end: o* D; Z, \& M, W& ]8 T
end  M( {' ?- l: T: ^* b; X( J: v
end: z1 \, ?$ O. D

* F2 K  q, q- h$ G* E5 F根据以上程序的计算结果,运行如下程序:
' s: s0 s, r# o5 sfor i=1:3
0 ]8 E9 F! `( R) Y$ N- \" s3 V: Qfor j=0:n
9 k* j. e4 V% D  q$ sfor k=0:n! ^7 J- H. l* H' m: A; w2 U
gang11=eigs(gang2{i,j+1,k+1});
' B5 d  v  p7 `; rgang12(j+1,k+1,i)=gang11(6)/gang11(1);1 S3 S; o4 t/ ~) a& X
end
: f1 M4 r( O; Lend
$ X& v" t: F# g  q% S  Dfigure(i)$ d7 L* f7 G. ?0 ~, D& f: J
gang12=double(gang12);, ?* E' a5 A" X" v7 f. [
mesh(Xx,Yy,gang12(:,:,i))% q" [3 ~! k  |# x) s; E
end, o8 b: o2 ]% p8 V. Q* w" c4 q8 l
# I' M+ ^6 c& F4 S4 {
该程序应该是绘制出三个图形,但是绘制一个图形以后就出现错误,错误如下:0 s1 I4 o6 u% n$ C1 ?2 v/ p4 K
??? Attempted to access gang11(6); index out of bounds because numel(gang11)=0.
! F& I. r9 H' j0 l' |; Y  ~7 ?* ]) A. Y' s
Error in ==> gangdutu at 5
) o( a% Y  |" G. ^gang12(j+1,k+1,i)=gang11(6)/gang11(1);/ q! X1 X3 P  [7 K$ D$ K( w

该用户从未签到

2#
发表于 2022-9-13 15:39 | 只看该作者
你的gang11是一个值,而不是一个向量,所以调用gang11(6)和gang(11)有误,超出了范围。应把上面一句 gang11=eigs(gang2{i,j+1,k+1});改为 gang11(k)=eigs(gang2{i,j+1,k+1});此处gang11的长度是多少就要有你自己看情况决定了。
+ w8 I& j8 U  w4 Q8 l$ A% P/ Y, o0 h

该用户从未签到

3#
发表于 2022-9-13 16:53 | 只看该作者
再看看别人是怎么说的
  V6 R. x! h/ u- G- W& \* q* ]

该用户从未签到

4#
发表于 2022-9-13 20:59 | 只看该作者

5 K+ [: ]# i# e5 e8 z* ?# ^你的gang11是一个值,而不是一个向量,所以调用gang11(6)和gang(11)有误,超出了范围。应把上面一句 gang11=eigs(gang2{i,j+1,k+1});改为 gang11(k)=eigs(gang2{i,j+1,k+1});此处gang11的长度是多少就要有你自己看情况决定了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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