Jak @Gunther wymienione w powyższych uwag, funkcja rodzajowy obsłużyć sim warunek naśladowania operatora trzeciorzędnego?: można utworzyć w celu obejścia ograniczenia, które Matlab nie pozwala warunkom wewnątrz funkcji anon (jeśli nie liczycie tej niechlujnie-brzydko-nieefektywnej, ale zabawnej wersji inline :).
Rozwiązanie zostało przedstawione za pomocą tego linku (i być może kilka innych miejsc, ale SO wróciło do mojego wyszukiwania google, więc pomyślałem, że dobrze byłoby dodać tutaj). http://www.mathworks.co.jp/matlabcentral/newsreader/view_thread/158054
zdefiniować funkcję powiedzieć IFF lub ifelse i dodać go do ścieżki 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
następnie wykorzystać jak to
predict = arrayfun(@(x) ifelse(x>=0.5,1,0), inputData);
W przypadku PO za coś takiego może być stosowany
arrayfun(@(x) ifelse(abs(x)<3,x^.2,0), data)
możliwy duplikat [Jak wykonać wiele instrukcji w anonimowej funkcji MATLAB?] (Http://stackoverflow.com/questions/558478/how-to-execute-multiple-statements-in-a-matlab-anonymous- funkcja) – Shai
@Shai: nie zgadzam się. To pytanie dotyczy oceny wielu funkcji w pojedynczym czasie, podczas gdy chodzi o ocenę warunkową w anon (tam * jest * dupek, widziałem to, ale nie znajduję tego teraz ...) –