&
메타 기능 (대체 입력 / 출력 사양)
함수에 전달할 입력 인수 수를 지정하는 일반적인 방법은 $
메타 함수 를 사용하는 것입니다.
2$: % Two-input version of :
마찬가지로 출력 인수 수를 지정하기 위해 출력 인수 수를 지정하는 #
메타 함수를 사용할 수 있습니다.
2#S % Two-output version of sort
또는 함수에 대해 정의 된 출력 인수 수 보다 큰 수를 전달 하면 출력 만mod(N, numberOfOutputs) + 1
제공됩니다.
4#S % Get only the second output of sort
#
특정 출력 인수 만 검색 하기 위해 논리 배열을 입력으로 지정할 수 있습니다 .
TFT#u % Three output version of unique and discard the second output
이러한 모든 입 / 출력 사양은 편리 하지만 바이트 수를 매우 빠르게 증가시킵니다. 이를 처리하기 위해 MATL &
은 17.0.0 릴리스 에서 메타 함수를 도입했습니다 . 이 &
메타 함수는 함수의 특정 입력 또는 출력 사양에 대한 바로 가기 역할을합니다. 그게 무슨 뜻인지 봅시다.
위의 예에서, 우리는 두 개의 입력 버전을 사용하고 싶었습니다 :
(같은 간격의 값으로 구성된 벡터를 만듭니다). 입력 인자의 기본 수 있지만 :
IS는 1
(상기 배열을 생성 [1...N]
), 그는 매우 사용자가 제 2 입력을 필요로하는 범위의 시작 값을 지정하려는 것이 일반적인. 에 대한 바로 가기로 :
정의 &
했습니다 2$
.
10 % Push 10 to the stack
12 % Push 12 to the stack
2$: % Create an array: [10, 11, 12]
이제 바이트를 저장 하여 다음과 같이됩니다 !
10 12 &:
대체 인수 수가 무엇인지 어떻게 알 수 있습니까?
입력 / 출력 사양 &
으로 변환는 기능 특정 우리 바이트 절약을 최적화하도록.
각 기능에 대한 도움말 설명의 입력 / 출력 인수 섹션이이 대체 입력 / 출력 수 (있는 경우)를 표시하도록 업데이트되었습니다. 입력 또는 출력 인수의 가능한 수는 범위로 표시되며 각각의 기본값은 괄호 안에 표시됩니다. 치환 될 수있는 입력 / 출력 사양 &
애프터 도시 /
괄호 안의 문자.
다음은 도움말 설명의 입력 / 출력 인수 섹션입니다. :
+- Min-Max range of # of inputs
| +----- Alt. Default # of inputs
| |
V V
1--3 (1 / 2); 1 <--- Possible / Default # of outputs
^
|
Default # of inputs
&
각 기능의 의미를 어떻게 결정 했 습니까?
매우 신중하게. 은 Using StackExchange API를 , 우리는 이제까지 PPCG 도전에 사용 된 모든 MATL 답변을 다운로드 할 수 있었다. 각 답변을 파싱하여 각 입력 / 출력 사양이 각 기능에 사용 된 빈도를 확인할 수있었습니다. 이 정보를 사용하여 &
메타 함수가 각 함수에 대해 나타내야 하는 입력 / 출력 사양을 객관적으로 식별 할 수있었습니다 . 때로는 명확한 승자가 없었으므로 현재 많은 기능이 &
정의 되지 않았습니다 .
다음은 우리가 사용한 스크립트입니다 (불행히도 MATLAB이 아니라 MATLAB으로 작성 됨 ).
그리고 여기 에 / 사용법 의 히스토그램 의 예가 있습니다$
#