Ваш код создаст анонимную функцию f
, которая принимает один вход A
. В частности, f
вызовет функцию DistanceGauss(A,x_axis,Y_target,Y_initial,numOf,modus);
, где значение A
- это то, что вы вводите с f(A)
, а другие входы должны уже существовать в вашей рабочей области и будут переданы функции. Примечание: если другие переменные не существуют, вы должны получить сообщение об ошибке при вызове f
.
Теперь разумный вопрос, почему вы хотите сделать это, вы можете просто позвонить DistanceGauss(A,x_axis,Y_target,Y_initial,numOf,modus);
напрямую с любыми значениями, которые вы хотите, не беспокоясь о том, существуют ли некоторые из них.
Есть две основные причины, по которым я могу думать, почему вы это сделаете (я уверен, что есть и другие). Во-первых, для простоты, когда ваши другие входы не изменяются, и вы не хотите, чтобы они повторяли их или пользователи случайно меняли их.
Другой причиной, по которой вы хотели бы это, является оптимизация/минимизация функции, например, с помощью fminsearch. Функции оптимизации Matlab будут варьироваться во всех входах. Если вы хотите изменить только некоторые из них, вы можете использовать этот вид синтаксиса для уменьшения количества входных переменных.
Что касается того, что A
действительно в вашем случае это будет зависеть от того, что он делает в DistanceGauss
, что не является стандартной функцией MATLAB, поэтому я предлагаю вам ознакомиться с кодом для этого.
'A' это просто переменная, точно так, как' х 'будет, когда вы определяете обычные функции (например,' f: x -> x^2'). Ваше объявление означает, что 'f' является анонимной функцией, которая принимает вход' A' и применяет 'DistanceGauss (A, x_axis, Y_target, Y_initial, numOf, modus);' к нему. – BillBokeey
Ваша программа Matlab? Тогда, конечно, вы знаете, что он делает. Если нет, кто написал код? Вы об этом спрашивали? Рассматривали ли вы, как работает анонимная функция, поскольку вы поняли, что это то, с чем вы столкнулись? –
В вашем случае символ '@ (A)' означает, что при вызове 'f' только первый параметр' DistanceGauss' является переменным, а остальные сохраняются постоянными (до значений, которые они были, когда вы определили 'f') – Dan