Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 尝试计算切线时出现奇怪的错误

我是MATLAB的新手,我正在尝试弄清我拥有的一些脚本。在其中一个中,我有一个用于计算短路阻抗的表达式(在其他表达式的上下文中):

Z=tan(2*p*f*d/vp) 很好,很花哨,但是当我想从切线变为负切线(对于开路)时,如下所示:

Z=-1/tan(2*p*f*d/vp) 它在该行给我一个错误,如下所示:

?? Error using ==> mldivide Matrix dimensions must agree 现在,AFAIK在计算Z时没有一个子表达式是矩阵。更令人困惑的是,如果我用cot更改1/tan ,则它起作用(与是否在其前面添加-符号无关):

Z=-cot(2*p*f*d/vp) 有任何想法吗?我已经对mldivide错误进行了谷歌搜索,但我只是看不到将其作为切线的倒数来计算余切线是如何应用的。

我在这里缺少MATLAB的特性吗?谢谢。

-编辑-

我想我应该已经包含了整个源代码(最初是为了计算短路线的输入阻抗,并尝试从tan到-cot的机会是开路线)

close all; % close all opened graphs figure; % open new graph % define distributed line parameters L=209.410e-9; % line inductance in H/m C=119.510e-12; % line capacitance in F/m vp=1/sqrt(L*C); % phase velocity Z0=sqrt(L/C); % characteristic line impedance d=0.1; % line length N=5000; % number of sampling points f=1e9+3e9*(0:N)/N; % set frequency range %Z=tan(2*pi*f*d/vp); % short circuit impedance Z= -1/tan(2*pi*f*d/vp); % open circuit impedance plot(f/1e9,abs(Z0*Z)); title('Input impedance of a short-circuit transmission line'); xlabel('Frequency {\itf}, GHz'); ylabel('Input impedance |Z|, {\Omega}'); axis([1 4 0 500]); % print -deps 'fig2_28.eps' % if uncommented -> saves a copy of plot in EPS format

回答:

我猜p,f或d之一是矩阵,所以tan(2*p*f*d/vp)也将是矩阵。 1 /矩阵将不起作用,因为它被定义为矩阵乘法的逆函数,此时您对矩阵的维数有限制。

尝试

Z=-1./tan(2*p*f*d/vp) 这是按元素划分。 (我想这就是您想要的。)



更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 23:21


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.