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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
在仿真中,首先进行求出反解,然后运行如下程序:
0 a; }  S$ K' H/ Un=50;rou=300;lamt=2*pi;
6 F, |; U! G  o9 b1 ?( ~Zz=[300 400 500];. q; J. _( r: d9 K( j
Rou=rou*(0:n)/n;
) `) b' C) x0 I. C5 e3 o% S. i; B# aLamt=lamt*(0:n)/n;8 b3 |4 O  P2 C4 O5 E6 u
[Rou1 Lamt1]=meshgrid(Rou,Lamt);
8 B- O. n8 L) r$ p5 A; U6 [0 zXx=Rou1.*cos(Lamt1);& Z& I. P& T% x: Q7 ]
Yy=Rou1.*sin(Lamt1);
" z3 T/ e& K* L, Pfai1=subs(faii,b,bb);' N( g) h. q, T' C8 Q( ?
for i=1:3
) I# [% P, I4 `4 e% ^" s$ Hz=Zz(i);1 Q4 V3 d; p6 w7 `1 d8 d) m6 c
for j=0:n; b/ {$ T  U" h( b# B. \7 S
for k=0:n
9 z: k, y0 W" z0 X' Cx=Xx(j+1,k+1);- ~9 r5 I7 O" R7 @+ s8 E0 i. [8 t
y=Yy(j+1,k+1);& W8 H$ V4 _9 Z% d( k
sita1=double(subs(sita,{rx,rz},{x,z}));6 W4 q2 Q! u8 {$ |
c21=cos(sita1);
$ r* Y$ H  s, p. C: c/ K6 q, Fs21=sin(sita1);
4 y7 R- G( C+ G- h. |, b1 Pfai2=double(subs(fai1,{rx,ry,rz,s2,c2},{x,y,z,s21,c21}));7 K( {2 i  K. L, G) b: ^
c31=cos(fai2);
# j' K6 `4 R* z1 Ds31=sin(fai2);0 S% |+ ~6 v2 r% _5 A6 a- S
gang2{i,j+1,k+1}=subs(gang1,{rx,ry,rz,s2,c2,s3,c3},{x,y,z,s21,c21,s31,c31});
* H4 D. \! E' W. W, O3 z$ u# rend8 V. c, ?2 Y  e. H' N
end
. U3 f- N) |& A. {0 Kend
! Z# y" [) q6 x) S+ d9 c& J! t- Q1 F1 }' l6 I! ?6 F
根据以上程序的计算结果,运行如下程序:* e6 D* N! A3 A' q
for i=1:3
' G: E& q7 W6 D1 |for j=0:n
4 U. Y8 {6 C' {% K/ Kfor k=0:n
5 M( A6 I* ^. W1 ^. e/ }7 Fgang11=eigs(gang2{i,j+1,k+1});: |" ?% {& Y  q( b3 B& d7 R
gang12(j+1,k+1,i)=gang11(6)/gang11(1);) V4 N' J1 N$ H! v3 c1 i
end
6 J; `5 }0 y5 j+ D! ?$ A+ M. C8 nend, ^' b! b# J( {5 T: z/ f
figure(i)
' M& K% k) d: ]0 kgang12=double(gang12);
4 N3 ~, d! z% V4 qmesh(Xx,Yy,gang12(:,:,i))/ N, j; J5 I$ k) K' g! C
end
5 H# X, ~/ p" B: g9 i: n* Q5 d3 t1 G3 o5 r3 @: X0 c3 m. c
该程序应该是绘制出三个图形,但是绘制一个图形以后就出现错误,错误如下:
/ ~- |9 X: S/ @' A0 |' y+ p' r/ |4 @??? Attempted to access gang11(6); index out of bounds because numel(gang11)=0.
8 A% i, |0 Q) G$ M! B5 {4 h/ V- [4 C% G4 c. p
Error in ==> gangdutu at 59 l' j# f6 W/ A+ K! ?
gang12(j+1,k+1,i)=gang11(6)/gang11(1);& L4 h2 C2 Y# w. @+ G! ], w+ 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的长度是多少就要有你自己看情况决定了。- L; m8 m: q7 m  a! V* x  L# i

该用户从未签到

3#
发表于 2022-9-13 16:53 | 只看该作者
再看看别人是怎么说的5 _* m1 t' k4 v

该用户从未签到

4#
发表于 2022-9-13 20:59 | 只看该作者
" v7 F4 `' Q* i$ `- i
你的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-11 00:47 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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