Как @Gunther упоминалось в предыдущих комментариях, общая функция для обработки сим чтобы подражать третичному оператору?: может быть создано для ограничения ограничения, которое Matlab не допускает условных условий внутри анонных функций (если вы не считаете, что запутанная версия - уродливая, неэффективная, но веселая).
Решение было предоставлено по этой ссылке (и, возможно, в нескольких других местах, но SO вернулось к моему поисковому поиску Google, поэтому подумал, что было бы неплохо добавить сюда). http://www.mathworks.co.jp/matlabcentral/newsreader/view_thread/158054
Определим функцию говорят тогда и только тогда или IfElse и добавить его в путь Matlab.
function result = ifelse(condition,trueResult,falseResult)
error(nargchk(3,3,nargin)); % check correct number of input args
if condition
result = trueResult;
else
result = falseResult;
end
затем использовать как этот
predict = arrayfun(@(x) ifelse(x>=0.5,1,0), inputData);
В случае с ФП, в чем-то, как это может быть использовано
arrayfun(@(x) ifelse(abs(x)<3,x^.2,0), data)
Возможный дубликат [Как выполнить несколько операторов в анонимной функции MATLAB?] (Http://stackoverflow.com/questions/558478/how-to-execute-multiple-statements-in-a-matlab-anonymous- функция) – Shai
@Shai: не согласен. Этот вопрос касается множественных оценок функций в одном аноне, в то время как об условной оценке в аноне (там * есть * обман, я видел это, но я не нахожу его сейчас ...) –