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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
在仿真中,首先进行求出反解,然后运行如下程序:
5 M% V( W* s  c( t- R; m6 v" M* on=50;rou=300;lamt=2*pi;
# I) ^$ j- y! C& }# W5 ^  SZz=[300 400 500];
: j9 A. k4 L9 X9 l4 M( V: v4 }Rou=rou*(0:n)/n;3 k0 b6 X, P3 @. v- r+ _
Lamt=lamt*(0:n)/n;
; ]) S7 s. G) p3 I[Rou1 Lamt1]=meshgrid(Rou,Lamt);$ V( D! D% h" ?; g# r. Q
Xx=Rou1.*cos(Lamt1);
! x; q3 W" s. q1 a& ?, W) h9 t0 m4 mYy=Rou1.*sin(Lamt1);
) ~) r5 e" s5 ffai1=subs(faii,b,bb);) Q9 r8 D+ U8 n* J# v7 T3 H8 y
for i=1:3
( y( w$ l7 ]5 R% X% R" U- r. g( x$ xz=Zz(i);9 S: [; O! _: p6 D
for j=0:n$ C. p# G2 O2 b' d6 F* G* z
for k=0:n" B, h7 [+ E, @
x=Xx(j+1,k+1);
" k0 u) B' q8 h7 H. T; Z8 k. {1 hy=Yy(j+1,k+1);7 K) S" ?6 X% P
sita1=double(subs(sita,{rx,rz},{x,z}));6 M% b: Y) S6 I  R
c21=cos(sita1);
  m/ o3 }# L. f4 y% {s21=sin(sita1);  [! i0 k" j$ l! X1 ?8 _
fai2=double(subs(fai1,{rx,ry,rz,s2,c2},{x,y,z,s21,c21}));. X& H9 S, J$ N: K) \0 P
c31=cos(fai2);9 Z; h. N* Q* W- g: m
s31=sin(fai2);
: v) T$ W# e& T% ~2 zgang2{i,j+1,k+1}=subs(gang1,{rx,ry,rz,s2,c2,s3,c3},{x,y,z,s21,c21,s31,c31});2 b3 i+ Q: E) a
end( W- n. N% m$ T- T- O
end
) b) F7 Y9 x0 s/ x7 j# Send
2 A$ m) J/ M8 F/ X; [5 }7 z# B$ m! P. Y2 x
根据以上程序的计算结果,运行如下程序:
' ~& O5 T% V/ Afor i=1:3' D* d( D* D  ?& ]5 ]) e! m
for j=0:n
! N( ]5 D# J5 D5 ?( a* V1 q, {) ufor k=0:n5 G4 _* c; k* c# V# [
gang11=eigs(gang2{i,j+1,k+1});
# X2 k' }) x, F2 [gang12(j+1,k+1,i)=gang11(6)/gang11(1);
' W8 ?) B. w) ]8 `. m0 n/ A; gend( d$ _1 o7 J) p% d
end' o  g1 L7 t6 A
figure(i). Z* p* X, B& K+ P' s
gang12=double(gang12);5 j  r/ S* t1 i  e
mesh(Xx,Yy,gang12(:,:,i))( ~) c7 u; y! G
end" v7 S3 C2 t- s8 \. Y' g+ D
4 _1 S8 O4 J. ?7 _& X
该程序应该是绘制出三个图形,但是绘制一个图形以后就出现错误,错误如下:- h2 X6 P% J6 j) Q
??? Attempted to access gang11(6); index out of bounds because numel(gang11)=0.
0 h+ W7 U. o. y( n% _; k% h) q; u' a/ k, P% s* i' D
Error in ==> gangdutu at 5' w, T7 \  {( F6 k
gang12(j+1,k+1,i)=gang11(6)/gang11(1);
6 K7 c: F5 ]8 B5 {! u+ {' p

该用户从未签到

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的长度是多少就要有你自己看情况决定了。
# }& g  @: I; D: Z. r- G( S9 c3 s' V6 ~

该用户从未签到

3#
发表于 2022-9-13 16:53 | 只看该作者
再看看别人是怎么说的
& Q& K3 z2 v, y: f" p8 ]8 [

该用户从未签到

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

6 b2 T  |6 [6 n你的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-6-21 00:15 , Processed in 0.062500 second(s), 23 queries , Gzip On.

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

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

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