Я новичок в 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 не является матрицами. Что делает его еще более запутанным, так это то, что если я изменю 1/tan
на cot
, то это сработает (независимо от того, добавлю я знак -
перед ним или нет):
Z=-cot(2*p*f*d/vp)
Есть идеи? Я выполнил поиск в Google по ошибке 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