poster
2019-12-14, 20:13
我是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) 这是按元素划分。 (我想这就是您想要的。)
更多&回答... (https://stackoverflow.com/questions/4960043)
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) 这是按元素划分。 (我想这就是您想要的。)
更多&回答... (https://stackoverflow.com/questions/4960043)