«Размеры внутренней матрицы должны совпадать» Ошибка MATLAB - PullRequest
0 голосов
/ 08 июня 2018

Я использую следующее уравнение в Matlab:

k=10e-10:0.01:1.5;
Ck2=(0.5*((i*k+0.135)*(i*k+0.651)))./((i*k+0.0965)*(i*k+0.4555));
plot(k,imag(Ck2));
plot(k,real(Ck2));

Я не определил «i», поэтому MATLAB предполагает, что предполагаемое число в моем уравнении является мнимым.Я пытаюсь построить реальные и мнимые части уравнения в зависимости от диапазона k.

Я получаю сообщение об ошибке: внутренние размеры матрицы должны совпадать.Я уже пытался использовать "."оператор перед оператором умножения, чтобы умножить каждый элемент, но мне не удалось.Любая помощь будет оценена.

Спасибо заранее.

1 Ответ

0 голосов
/ 08 июня 2018

Поскольку k является вектором, при умножении k * k вы умножаете 2 вектора на матричное умножение.С умножением матрицы вы умножаете матрицу размера jxk на матрицу размера akxl и получаете результат ajxl.

Но здесь вы умножаете 1 x 150 на 1 x 150, поэтому размеры не совпадают для правильного умножения матриц.Вместо этого использование. * Будет выполнять попарное умножение между каждым из элементов.

Попробуйте это:

k = 10e-10:0.01:1.5;  % 1 x 150 length vector
Ck2= (0.5*((i*k+0.135) .* (i*k+0.651))) ./ ((i*k+0.0965) .* (i*k+0.4555));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...