Похоже, ваша функция может быть выполнена очень быстро без циклов с использованием функций min
и max
. Предполагая, что x
является вектором строки:
>> x = [8 4 9 7 6 4 2 3 5 6]
x =
8 4 9 7 6 4 2 3 5 6
>> [min_x, min_x_loc] = min (x)
min_x = 2
min_x_loc = 7
>> [max_x, max_x_loc] = max (x)
max_x = 9
max_x_loc = 3
, если вы хотите поместить его в одну функцию, используя вашу запись:
function [low, high, index1, index2] = Q1(x)
[low, index1] = min (x);
[high, index2] = max (x);
end
(не обязательно, но с использованием end
вместо endfuntion
сохраняет совместимость с Matlab)