APL에서 without 함수와 함께 각 연산자 사용

Aug 21 2020

다음 데이터가 포함 된 중첩 배열이 있습니다.

┌→────────────────┐
│ ┌→────┐ ┌→────┐ │
│ │ABC12│ │DEF34│ │
│ └─────┘ └─────┘ │
└∊────────────────┘

다음과 같이 표시되도록 각각에서 숫자를 제거하고 싶습니다.

┌→────────────┐
│ ┌→──┐ ┌→──┐ │
│ │ABC│ │DEF│ │
│ └───┘ └───┘ │
└∊────────────┘

각 연산자 (¨) 및 '0123456789'의 오른쪽 인수와 함께 without 함수 (~)를 사용해 보았지만 길이 오류가 발생합니다. 또한 다음과 같이 각 숫자를 자체 배열에 넣어 보았습니다.

┌→────────────────────────────────────────┐
│ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ │
│ │0│ │1│ │2│ │3│ │4│ │5│ │6│ │7│ │8│ │9│ │
│ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ │
└∊────────────────────────────────────────┘

그러나 이것 역시 길이 오류를 초래했습니다. 어떤 도움을 주시면 감사하겠습니다.

답변

3 TessellatingHeckler Aug 21 2020 at 11:11

Dyalog APL을 가정하면 ⎕D배열의 각 문자열에 적용되는 문자열에서 숫자 ( ) 를 제거하는 직접 함수를 시도 할 수 있습니다.

      yourData
┌→────────────────┐
│ ┌→────┐ ┌→────┐ │
│ │ABC12│ │DEF34│ │
│ └─────┘ └─────┘ │
└∊────────────────┘
      {⍵~⎕D}¨yourData
┌→────────────┐
│ ┌→──┐ ┌→──┐ │
│ │ABC│ │DEF│ │
│ └───┘ └───┘ │
└∊────────────┘
3 Adám Aug 21 2020 at 12:52

당신이 찾고있는 것은 각각에서 전체 숫자 세트 ( ⎕D)를 세트 빼는 것입니다 ( "without-ing") . 따라서 전체적으로 작동하도록 설정된 숫자를 묶습니다.

      'ABC12' 'DEF34'~¨⊂⎕D
┌→────────────┐
│ ┌→──┐ ┌→──┐ │
│ │ABC│ │DEF│ │
│ └───┘ └───┘ │
└∊────────────┘

온라인으로 시도하십시오!

이것이 당신이 원하는 것을 어떻게 읽는지 주목하십시오.

전체 ( ) 자릿수 ( ) 의 각 ( )이 'ABC12' 'DEF34'없는 데이터 ( ).~¨⎕D