Что вам нужно сделать, это объявить вашу функцию следующим образом:
function myFunction(x,y,z)
% your function code here
end
Затем в вашей функции вы можете получить доступ к отдельным элементам векторов, используя x(1)
, y(2)
и т. Д.
Чтобы вызвать функцию, включая любой номер, который вы хотите, вы можете ввести в командном окне Matlab (например) myFunction([1 2 3],[4 5 6],[7 8 9])
, и код в вашей функции будет вызываться с переменной x
, установленной на вектор[1,2,3]
, переменная y
установлена на [4,5,6]
и z
на [7,8,9]
. Использование запятых для разграничения значений не является обязательным. Если ваша функция затем обращается к y(2)
, она получит второе значение вектора y
, которое будет 5
- важно отметить, что индексирование в Matlab основано на 1, так что 1-й элемент x
полученс x(1)
.
Если вам нужно вернуть значения, вы можете использовать:
function [a,b,c] = myFunction(x,y,z)
Затем просто присвойте a
, b
или c
в своем коде перед оператором end
.
См. Официальную документацию Matlab для получения дополнительной информации.
Я бы добавил, что большая часть преимуществ Matlab заключается в работе с данными в векторизованной форме, так что если вы можетево избежание разделения на отдельные элементы я бы так и сделал. Например, если вам нужно добавить два вектора, вы могли бы сделать z = [x(1)+y(1), x(2)+y(2), x(3)+y(3)]
, но гораздо лучше (более читабельно, более легко обслуживаемо, быстрее) - z=x+y
.