Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我是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) 这是按元素划分。 (我想这就是您想要的。) 更多&回答... |
![]() |
![]() |