MATLAB: преобразование из цикла for в отсутствие цикла

У меня есть функция, предоставленная инструктором, которая недоступна для нас, чтобы увидеть внутреннюю работу.

Эта функция в основном интегрирует все, что вы вводите.

Вот наш цикл:

for i = 1:length(time)-1
    intdefValues(i) = intdef(t, r, time(i), time(i+1));
end

Мы пытаемся сделать это:

intdefValues = intdef(t, r, time(1:end-1), time(2:end));

Мы ошибаемся? В любом случае, функция не поддерживает векторы?

Синтаксис функции, если вам интересно;

intdef(t, x, a, b)

Где t = вектор времени, x = функция, а a, b — параметры начала/конца.


person Josh Beckwith    schedule 05.10.2014    source источник
comment
когда вы пытаетесь без цикла, функция выдает ошибку?   -  person Autonomous    schedule 06.10.2014
comment
Мы ошибаемся? В любом случае, функция не поддерживает векторы? Да, функция может принимать в качестве входных данных только скаляры, а не векторы. Чтобы быть уверенным, вам следует узнать у преподавателя более подробную информацию о синтаксисе рассматриваемой функции. Или, как предложил @ParagS.Chandakkar, попробуйте передать ему векторы и посмотрите, не появится ли ошибка.   -  person jub0bs    schedule 06.10.2014
comment
Кроме того, даже если вы найдете какой-то способ подачи векторов, это может не ускорить работу программы, поскольку вы изменяете способ работы функции intdef(). Так что, возможно, не стоит исследовать.   -  person Autonomous    schedule 06.10.2014


Ответы (1)


person    schedule
comment
Как это отвечает на вопрос? - person jub0bs; 06.10.2014
comment
@Jubobs Правильно, тестирование черного ящика (поскольку ОП указывает, что проблема принадлежит) - это не поле, в котором можно напрямую ответить на ваш вопрос. Ни мы, ни ОП не знаем внутренних деталей реализации функции. Тем не менее, даже тестирование черного ящика может ИМХО косвенно доказать дилемму ПРОШЕЛ/НЕ ПРОШЕЛ, независимо от того, разработана ли функция (как и множество хорошо спроектированных / настроенных на производительность LIB) внутренне так, чтобы поддерживать verctorized modus operandi или нет. - person user3666197; 06.10.2014