Мне нужно построить функцию, основанную на корнях, для которой я могу использовать poly (), чтобы получить многочлен. Однако всякий раз, когда я запускаю функцию, она выдает ошибку. Я хочу быть в состоянии исправить ошибку, чтобы я мог продолжить свои дальнейшие цели.
Мне нужно построить график функции относительно области времени, которую я предоставляю, построить график функции относительно индекса дискретизации nVec, умноженного на deltaT частоты дискретизации, а затем построить дискретный сигнал. Я сейчас нахожусь на остановке, потому что я не могу построить непрерывный сигнал (первый график). Это постоянно дает мне ошибку. Я попытался изменить корни (rootsVec) с отрицательного включения на чисто положительное, чтобы я мог получить уравнение из poly (), а также поставить частоту дискретизации для приращения во времени, но безрезультатно.
function [tVec,nVec,xVec] =
fxNthOrderPolyDTSignal(domainVec,noOfSamples,rootsVec)
DSIntervals = noOfSamples - 1;
deltaT = (max(domainVec) - min(domainVec))/DSIntervals;
%time = input("Please input a specific time within the domain: ");
nVec = min(domainVec)/deltaT;
tVec = min(domainVec) + (nVec * deltaT);
Eqtn = poly(rootsVec);
x = linspace(domainVec(1),0.5,max(domainVec));
figure(1)
plot(Eqtn(x),x)
figure(2)
plot(Eqtn,(nVec*deltaT))
end
Ожидаемый результат - это просто график сигнала со следующими входными аргументами:
domainVec = [-10, 10] (это время, когда существует сигнал);
noOfSamples = 30;
rootsVec = [-3, 8] (он же многочлен второго порядка);
Фактическим результатом является следующая ошибка: индексы массива должны быть положительными целыми числами или логическими значениями.