2015-11-05 4 views
-1

Для функции какПроблемы при использовании анонимной функции в MATLAB

fun = @(x,y) x+y 

Могу ли я аннотирования х к 1 и генерировать функция равна @(y) 1+y? Есть ли способ сделать это без создания новой функции?

Я задаю этот вопрос, потому что я не могу изменить функцию с частью фиксированного значения и применить его к функциям как arrayfun

+0

вам нужно будет создать новую функцию. Но это может повторить эту забаву. – Navan

+2

'fun1 = @ (y) fun (1, y)' – Dan

+1

Почему бы просто не использовать fun (1, y)? – lhcgeneva

ответ

2

Неясно, что вы имеете в виду под «сделать это без создания новой функции», так как в первой части вопроса возникает вопрос о том, как «генерировать» новую функцию. У вас есть в основном три варианта: в зависимости от того, что вы хотели:

  1. Просто позвоните fun(1,y), где вам нужно значение.
  2. Определить другую анонимную функцию g = @(y) fun(1,y).
  3. Используйте прямое определение h = @(y) 1 + y.
+0

, вероятно, просто опечатка, но в вашем третьем варианте вы не имеете в виду 'h = @ (y) 1 + y' (_woutout extra_' = '_character_) – Hoki

+0

@Hoki Спасибо. Я исправил это сейчас. – Brick

+0

Как я могу поместить его в массив? – xxx222

Смежные вопросы