#arrays #matlab #parameters #parameter-passing
#массивы #matlab #параметры #передача параметров
Вопрос:
У меня есть следующая функция:
function [ res ] = F( n )
t = 1.5;
res = 0;
if n <= 0
return;
end
for i = 0:n-1
res = res power(-1,i)*power(t,2*i 1)/((2*i 1)*factorial(i));
end
end
Я пытаюсь передать ей массив, чтобы я мог видеть его выходные данные для каждой точки в массиве
F([2,3,4])
По какой-то причине она отказывается работать со всем массивом, выдавая мне выходные данные только для первого элемента.
Почему это?
РЕДАКТИРОВАТЬ: если я изменю
res = 0;
в начале для
res = 0 n;
res = res - n;
Это работает для всего массива.
Ответ №1:
Проблема в том, что res не является массивом. Вы можете сделать что-то вроде этого:
function res = F(n)
t = 1.5;
m = length(n);
res = zeros(m, 1);
for j = 1 : m
for i = 0 : n(j) - 1
res(j) = res(j) power(-1, i) * power(t, 2 * i 1) / ((2 * i 1) * factorial(i));
end;
end;
end;
Результат для вашего примера векторного ввода:
>> F([2,3,4])
ans =
0.375000000000000
1.134375000000000
0.727566964285714