정말 열심히해야하는 것처럼 보이지 않기 때문에 나는 정말 간단한 것을 놓치고 있어야합니다.왜 MATLAB 익명 함수 내에서 변수를 정의 할 수 있습니까?
이 코드는 올바른 :
clear all
whatever = @(x) deal(q = 3; q*max(x), size(x));
input = randn(1,1000);
[a b] = whatever(input)
왜 휴식을 수행합니다
clear all
whatever = @(x) deal(max(x), size(x));
input = randn(1,1000);
[a b] = whatever(input)
그러나,이 같은 내가 정말하고 싶은입니까? 나는 함수 안에서 q를 정의 할 수 없다 ?? 익명의 함수를 사용하고자하는 전체적인 이유는 실제로 그 안에 여러 줄의 코드를 작성한 다음 대답을 반환 할 수 있기 때문입니다. 익명의 함수의 마지막 문장이 반환되는 것이지만, 그 안에 변수를 정의하는 방법은 무엇입니까? 익명 함수 정의 전에 q를 정의하고 싶지 않습니다.
감사합니다.
수 없습니다. '@ (x) deal (3 * max (x), size (x))'를하지 못하게하는 것은 무엇입니까? –
@EitanT 그럴 수 있습니다. 내가 묻는 이유는 q가 some_very_complicated_function이기를 원하기 때문입니다. 그래서 코드가 끝내 읽을 수 있도록 place holder가 될 것입니다. 나는 실제 함수와 같은 방식으로 익명의 함수를 코딩 할 수 있다는 인상하에 있었다. 인간의 가독성을위한 것. – Spacey