Почему MATLAB выдает ошибку, в которой говорится, что «индекс в позиции 2 недействителен»? - PullRequest
1 голос
/ 21 апреля 2020

Этот код выглядит так, как будто он должен быть простым, но по какой-то причине я продолжаю получать эту ошибку: «Индекс в позиции 2 недопустим. Индексы массива должны быть положительными целыми числами или логическими значениями.»

Это относится к эти строки:

Vr = (V*R)/(sqrt((R^2)+(w*L-(1/(w*C))^2)));
VR(1,i) = Vr;

Я пытался проверить, правильно ли я ввел уравнение или нужно ли сохранять определенные значения как целые числа, но, похоже, ничего не работает. Любой совет будет принята с благодарностью.

Вот полный код, если вам нужно:

disp('Please enter Vo in volts, R in kiloOhms, L in miliHenries, and C in picoFarads');
input = input('Enter values as single matrix.  ');

V = input(1,1);
R = input(1,2);
L = input(1,3);
C = input(1,4);

VR = zeros(1,1000);      

for i = 0:1000
    w=i*10*10^-9;
    Vr = (V*R)/(sqrt((R^2)+(w*L-(1/(w*C))^2)));
    VR(1,i) = Vr;
end

Спасибо!

1 Ответ

1 голос
/ 21 апреля 2020

Ваш for loop начинается с нуля, но Matlab является языком с 1 индексом.

VR = zeros(1,1000);      

for i = 1:1000 % <- Mistake was here, change zero to one
    w=i*10*10^-9;
    Vr = (V*R)/(sqrt((R^2)+(w*L-(1/(w*C))^2)));
    VR(1,i) = Vr;
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...