为了账号安全,请及时绑定邮箱和手机立即绑定

代码见下,为什么说Z必须是矩阵 不能是矢量???

代码见下,为什么说Z必须是矩阵 不能是矢量???

神不在的星期二 2023-02-17 21:17:33
clear;clc;xx=[];yy=[];zz=[];%有数值的变量syms Ceq Reqt=1;Eeq=1485;Leq=30*(10^(-6));Irmz=1596;Tao=41*(10^(-6));%含有未知量的变量We=sqrt(Leq*Ceq');W=We.^(-1);P=Req/(2*Leq);B=sqrt(W.^2 - P.^2);g=(Tao*(Tao-(2*P./W.^2))*Irmz)./(Tao*(Tao-(2*P./W.^2))+(1./W.^2));A1=Irmz-g;A2=-(P*(Irmz-g)+Eeq/Leq+g/Tao)/B;K=P/W;for Ceq = 0:0.01*10^(-5):5*10^(-5)for Req = 0:0.01:5[Ceq,Req]=meshgrid(Ceq,Req);%因变量Vd=Eeq+Leq*((P*A1-B*A2)*cos(B*t))+(B*A1+P*A2)*sin(B*t)*exp(-P*t)+(Leq*g*exp(-t/Tao)/Tao);xx=[xx,Ceq];yy=[yy,Req];zz=[zz,Vd];endendsurf(xx,yy,zz);xlabel('Ceq')ylabel('Req')zlabel('Vd')
查看完整描述

1 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

matlab代码出错 说Z必须是矩阵 不能是矢量?其原因是

Vd是sym型数据,而不是数值型数据。所以题主用双循环语句来求Vd的思路是对的,但处理的方法欠妥,应该这样来写

1、Ceq,Req单独取值,即

Ceq = 0:0.01*10^(-5):5*10^(-5)

Req = 0:0.01:5

2、使用meshgrid函数,进行数据网格化,即

[Ceq0,Req0]=meshgrid(Ceq,Req);

3、使用for双循环语句,求解Vd值,并赋值给zz数组变量。

4、按上述要求修改,运行可以得到如下图形结果。

 


查看完整回答
反对 回复 2023-02-20
  • 1 回答
  • 0 关注
  • 61 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信