따라서 이 데모에서는 목록과 행렬의 기본 기능 중 일부를 살펴볼 것입니다. 그래서 목록으로 시작하겠습니다. 그리고 새로운 스크립트 편집기 창을 얻을 것입니다. 다시 말하지만, 키보드 단축키는 Ctrl+T입니다. 크기를 조정하고 재정렬하겠습니다. 일지 앞에 로그를 가져오겠습니다. 그리고 내 목록이라고 부를 변수를 만들 것입니다. 그리고 list 함수의 결과를 할당하겠습니다. 그래서 단어 목록 여는 괄호, 그리고 나는 변수, b를 사용할 것입니다. 그런 다음 So that's sqrt의 제곱근을 계산한 다음 괄호 안에 넣겠습니다. 그리고 대문자와 공백이 들어갈 수 있도록 다시 포맷하겠습니다. 그리고 스크립트를 실행하겠습니다. 따라서 로그에 표시되는 것은 단순히 3개의 요소가 있는 목록이 할당되었다는 정보입니다. 내 목록 위로 마우스를 가져가면 내가 입력한 항목이 평가되지 않은 상태로 저장되어 있는 것을 볼 수 있습니다. 두 개의 변수와 함수 제곱근입니다. 스크립트 편집기 창의 새 줄에서 목록에 있는 항목의 평가를 요청할 것입니다. 그래서 eval list open parentheses my list를 입력하겠습니다. 그리고 나는 그 라인을 실행할 것입니다. 그래서 거기에서 평가된 결과를 봅니다. 이제 내 목록은 평가되지 않은 상태로 남아 있습니다. 따라서 평가 목록의 결과로 작업하려면 목록 평가 결과를 새 목록에 할당하는 것이 좋습니다. 그러나 목록에서 평가된 항목으로 작업하기 위해 아래 첨자를 사용할 수 있는 몇 가지 다른 방법이 있습니다. 그래서 그것에 대해 이야기하기 전에 일반적으로 목록을 첨자화하는 것에 대해 이야기하겠습니다. 그래서 나는 새로운 라인으로 갈 것이다. 그리고 내 목록을 여는 대괄호를 입력하겠습니다. 그리고 목록에서 두 번째 항목을 추출하기 위해 입력하겠습니다. 그리고 해당 라인만 실행하면 평가되지 않은 항목이 표시됩니다. 평가된 결과를 원하면 어떻게 될까요? 글쎄, 나는 실제로 여기에서 두 번째 줄로 돌아올 수 있습니다. 나는 내 목록에 대한 평가를 요청할 수 있고 그 결과를 첨자로 할 수 있습니다. 그래서 저는 열린 대괄호를 넣고 거기에 대괄호를 닫습니다. 그리고 데스크탑 컴퓨터 키보드의 맨 오른쪽에 있는 숫자 키패드의 Enter 키를 사용하여 해당 행만 다시 실행하겠습니다. 그래서 거기에서 나는 그 결과를 다시 얻기 위해 평가된 목록을 첨자로 첨삭했습니다. 우리는 목록 수정에 대해 이야기했습니다. 그래서 새로운 라인으로 가고 싶어요. 그리고 insert into를 사용하겠습니다. 따라서 insert into는 목록을 제자리에서 수정합니다. 그래서 괄호를 열겠습니다. 그리고 어떤 목록을 수정하고 있습니까? 글쎄, 그것은 내 목록에 저장되어 있습니다. 그것이 첫 번째 주장입니다. 무엇을 추가하고 싶습니까? John이라는 이름을 추가하겠습니다. 그래서 그것은 문자열입니다. 그리고 거기에 쉼표를 넣지 않고 세 번째 인수를 제공하지 않으면 목록 끝에 넣습니다. 하지만 쉼표를 사용하고 선택적인 세 번째 인수로 입력하여 두 번째 위치에 놓을 것입니다. 그런 다음 해당 라인만 실행하겠습니다. 그리고 insert into는 실제로 로그에 아무 것도 반환하지 않습니다. 그러나 스크립트에 나타나는 아무 곳이나 내 목록 위로 마우스를 가져가면 두 번째 위치에 John이라는 이름을 갖도록 수정되었음을 알 수 있습니다. 이제 목록이 있다고 가정해 보겠습니다. 예를 들어 JSL 함수에서 목록을 반환했거나 사용자 입력을 수집하는 데 사용되었을 수 있습니다. 그리고 목록에서 항목을 찾아야 제거할 수 있습니다. 그게-- 글쎄요, 그게 목록에 있는지 모르겠어요. 목록에 있는지 먼저 묻고 싶습니다. 그렇다면 제거할 수 있기를 원합니다. 그래서 John 항목의 위치를 저장할 변수를 만들겠습니다. 그 포스라고 할게요. 그리고 나는 contains 함수의 결과를 할당할 것이다. 그래서 우리는 문자열을 포함하는 것을 보았습니다. 이제 목록과 함께 포함됩니다. 내 목록에서 John이라는 문자열을 찾고 있으며 물론 대소문자를 구분합니다. 그 줄을 실행하면 pos 변수에 반환되고 저장되는 결과는 And입니다. 예를 들어 목록에서 해당 항목을 제거하려는 경우 계속해서 remove from open parentheses를 입력하면 됩니다. 내 목록을 찾고 있습니다. 그리고 첫 번째 인수 이후에 아무것도 제공하지 않으면 얻을 수 있는 마지막 항목을 제거하는 대신 pos 변수를 사용하겠습니다. 그리고 나는 그 라인을 실행합니다. 그리고 그것은 제거된 요소의 수에 관계없이 목록을 반환합니다. 기본적으로 두 번째 인수에 지정된 위치에서 시작하여 하나를 취합니다. 그래서 해당 문자열이 있는 목록을 얻습니다. 그리고 내 스크립트의 다른 곳에서 목록의 해당 요소를 사용하려는 경우 실제로 해당 결과를 자체 변수에 할당할 수 있습니다. 그리고 이것을 So let me로 첨자하여 반환된 목록에서 추출할 수도 있습니다. 지금은 내 목록에 John이 더 이상 포함되어 있지 않습니다. 나는 나의 라인을 다시 운영할 것이다. pos에 저장된 값은 여전히 동일합니다. 그리고 라인 And를 실행하여 목록에 없는 문자열을 반환했습니다. 내 목록 위로 마우스를 가져가면 이전 값으로 되돌아간 것을 볼 수 있습니다. 행렬에 대해 조금 이야기해 보겠습니다. 로그를 마우스 오른쪽 버튼으로 클릭하여 지우고 스크립트 편집기 창에서 모든 항목을 선택하고 삭제하겠습니다. 그래서 저는 매트릭스에서 제 행이 될 사람들을 시뮬레이션하는 것으로 시작하겠습니다. 그리고 그 사람들은 주사위를 5번 던질 것입니다. 육면체 주사위입니다. 그리고 그것이 제 칼럼이 될 것입니다. 저는 난수 생성기로 이것들을 생성할 것입니다. 하지만 특정 시드 값으로 시작하여 따라가면 정확히 동일한 난수를 얻을 수 있습니다. 그리고 지정된 수의 행과 열로 행렬을 만드는 j 함수라는 함수를 사용할 것입니다. 그것들은 처음 두 개의 인수이고 그 다음 행렬의 값이 될 것입니다. 이것이 세 번째 인수입니다. 그래서 저는 임의 재설정 기능을 값으로 사용할 것입니다. 다시, 이것은 난수 생성기의 시작 시드를 지정하는 것입니다. 그럼 실행해보겠습니다. 그런 다음 새 줄에서 j 함수의 결과가 할당될 변수 m을 생성합니다. 다시 말하지만, 사람을 시뮬레이션하는 행의 수로 시작한 다음 6면체 주사위를 5번 굴리는 열의 수로 시작합니다. 그리고 나는 인수와 함께 임의의 정수 함수를 사용할 것입니다. 우리는 에서 시작하여 난수를 선택할 것입니다. 그리고 다시, 약간 보이도록 다시 형식을 지정할 수 있습니다. 죄송합니다. 다시 형식을 지정하는 대신 실행했습니다. 그것. 그래도 다시 포맷할 수 있습니다. 우리는 거기에 갈. 그래서 지금도 실행 중입니다. 로그를 조금 더 크게 만들면 행별 행렬이 있음을 알 수 있습니다. 그리고 그 행렬의 요소를 어떻게 참조합니까? 음, 우리는 첨자를 사용합니다. 그래서 나는 새로운 라인으로 갈 것입니다. 아마도 나는 다섯 번째 사람이 주사위를 세 번째 굴렸을 때 무엇을 굴렸는지에 관심이 있을 것입니다. 그래서 변수 이름 m을 첨자로 하고 m을 첨자로 한 다음 대괄호를 붙입니다. 행 번호의 경우 쉼표, 열 번호의 경우 대괄호를 닫고 해당 행을 실행합니다. 그래서 다섯 번째 사람이 세 번째 주사위를 굴렸습니다. 그리고 우리는 실제로 그것을 확인할 수 있습니다. 그래서 하나, 둘, 셋, 넷, 다섯 번째 줄, 세 번째 주사위 굴림이 있습니다. 이제 전체 행이나 전체 열을 찾으려면 어떻게 해야 합니까? 글쎄, 여기 새 줄에-- 사실, 같은 줄을 사용하고 내 줄의 아래 첨자를 바꿀 것입니다. 모든 행을 원한다고 가정해 보겠습니다. 그래서 첫 번째 아래 첨자를 입력합니다. 그런 다음 쉼표 뒤에 a를 입력하여 특정 열을 선택하는 것을 원하지 않음을 나타냅니다. 이것은 모든 열에 행해질 것입니다. 그리고 나는 그것을 실행할 수 있습니다. 그리고 그것은 나에게 모든 값을 줄입니다. 그리고 위로 스크롤하려는 경우 해당 값이 실제로 행의 값인지 확인할 수 있습니다. 즉, 실제로 반환되는 값입니다. 행 아래 첨자와 열 번호가 있는 열을 선택하기 위해 동일한 작업을 수행할 수 있습니다. 그러나 전체 행을 제거하고 싶다고 가정해 봅시다. 제 3자가 주사위 굴림에서 어떻게든 속임을 결정했다고 가정해 봅시다. 그래서 저는 m에 a와 a를 붙이고 세미콜론 앞에 빈 행렬의 값을 할당하겠습니다. 그래서 대괄호를 열고 닫습니다. 그리고 그 줄을 실행하면 로그에 반환되는 것은 빈 행렬입니다. m 위로 마우스를 가져간 다음 행 수를 계산하려면 현재 행이 9개뿐임을 알 수 있습니다. 자, 다시, 우리가 행렬로 할 수 있는 몇 가지를 가지고 놀면서, 각각의 역할을 맡은 나머지 9명의 사람들이 여섯 번째로 죽는다고 가정해 봅시다. 그래서 저는 이 자리에서 할 것입니다. 교환원, 나는 m. 그런 다음 할당 연산자는 Concat이 될 것입니다. 따라서 이중 수직 막대와 등호입니다. 공백이 없습니다. 여러 문자가 있는 이러한 연산자의 구성 요소 사이에 공백이 있을 수 없기 때문입니다. 그리고 j 함수를 다시 사용하겠습니다. 그리고 우리는 9개의 행만 가지고 있습니다. 그리고 하나의 열을 원합니다. 그리고 다시 임의의 정수를 사용할 것입니다. 그리고 그 주장에 대해 여전히 6면체 주사위이므로 제공하겠습니다. 따라서 해당 줄을 실행할 때 여섯 번째 열을 추가하여 m을 제자리에 수정합니다. 이제 행렬에 6개의 열이 있는 것을 볼 수 있습니다. 로그를 지우자. m에 값을 할당하는 것부터 다시 시작하겠습니다. 나는 더 이상 임의의 숫자를 사용하지 않을 것입니다. 그래서 스크립트 편집기 창의 내용을 지울 것입니다. 카운터 변수 i를 초기화하고 그 값을 할당하겠습니다. 그래서 초기화하기 위해 실행하겠습니다. 그런 다음 새 줄에서 m에 다른 행렬을 할당합니다. 따라서 m에는 j 함수의 결과가 할당됩니다. 5개의 행이 있을 것입니다. 이 행렬은 행 5개, 열 5개를 가지며 에서 시작하여 행렬의 모든 요소에 대해 i만큼 증가합니다. 그래서 저는 i 더하기 플러스를 사용할 것입니다. 그리고 실행하겠습니다. 그래서 저는 by 행렬이 있습니다. 그리고 열 단위가 아니라 행 단위로 증가한다는 점에 유의하십시오. 그리고 그것은 우리가 앞으로 보게 될 또 다른 구독 방법에 중요합니다. 그래서 우리는 행 단위로 증가합니다. 자, 실제로 Well까지 가는 시퀀스를 원한다면 어떻게 될까요? 확실히 그렇게 하는 다양한 방법이 있습니다. 하지만 빠른 방법은 방금 만든 행렬의 모든 요소를 곱하는 것입니다. 그리고 다시, 이러한 연산을 벡터화할 수 있습니다. 행렬을 반복할 필요가 없습니다. 저는 그냥 할당합니다. 그리고 또 다른 내부 할당을 할 것입니다. m과 별표는 같으므로 곱하기 우리는 제자리에서 할 필요가 없습니다. 하지만 새로운 변수를 만드는 대신에 그렇게 할 것입니다. 그래서 다시, 나는 루프를 할 필요가 없습니다. 요소별로 모든 것을 곱하면 됩니다. 그리고 저는 그것을 실행합니다. 이제 에서 까지 증분하는 행렬이 있습니다. 이 행렬을 만드는 또 다른 방법은 인덱스 함수로 시작하는 두 단계입니다. 따라서 스크립트 편집기 창에 있는 내용을 지울 것입니다. 로그도 지우고 가겠습니다. 스크립트 편집기 창에 m을 입력하겠습니다. 그리고 그것은 인덱스 함수(인덱스 여는 괄호)의 결과 값이 할당될 것입니다. 그리고 여기에서 사용할 선택적 세 번째 인수를 계산합니다. 여기서 증분을 사용합니다. 그래서 우리는 갈 것입니다 그래서 여기 우리가 행렬에 의해 가지고 있던 그 행렬을 만드는 첫 번째 단계입니다. 따라서 index 함수를 사용하여 행 벡터를 만듭니다. 그리고 나서, 나는 이것을 형성할 수 있습니다. 그래서 나는 새로운 라인으로 갈 것입니다. 다시 m을 덮어쓰겠습니다. 따라서 m은 첫 번째 인수로 m을 사용하고 5개의 행과 5개의 열을 갖도록 차원을 변경하는 shape 함수의 결과가 됩니다. 이 모양 기능은 매우 조심해야 합니다. 이 경우 행 벡터가 여기에서 지정한 제곱 행렬과 일치하지 않는 경우 모양으로 지정한 행렬이 너무 작은 경우 JMP는 이 벡터를 자릅니다. 또는 더 큰 행렬을 지정하면 벡터가 반복되기 시작합니다. 따라서 모양 기능을 사용할 때 주의해야 합니다. 그래서 그것을 실행하고 싶습니다. 그리고 다시 정사각 행렬이 있습니다. 이제부터 증분으로 JMP에서 모든 작업을 일반적으로 수행할 수 있는 많은 방법이 있다는 사실을 제외하고 내가 그렇게 하고 싶었던 이유 중 일부는 다른 첨자 방법에 대해 이야기하는 것입니다. 우리는 행별 첨자를 보았습니다. 그리고 저는 여러분이 가끔 보게 될 하나의 첨자에 대해 이야기하고 싶습니다. 그래서 내가 원했다면, 우리는 포함 함수를 사용할 수 있습니다. 우리는 그것을 문자열로 보았습니다. 목록과 함께 사용할 수 있습니다. 행렬과 함께 사용할 수 있습니다. 현재 m에 저장된 행렬에서 숫자의 위치를 찾고 싶다면, 글쎄요, 만약 제가 설명한다면 저는 이렇게 말할 것입니다. OK, 그것은 행 열입니다. 그래서 저는 쉼표 아래 첨자를 사용할 것입니다. 하지만 JMP에게 저를 위해 그것을 찾도록 요청했다면 저는 그냥 포함을 사용할 것입니다. 다시 말하지만 실제로 스크립트는 이 결과를 변수에 할당할 수 있습니다. 여기서는 그렇게 할 필요가 없습니다. 다음을 포함하고 m 쉼표 JMP가 제공하지 않습니다. 단일 값을 제공할 것입니다. 글쎄, 그 단일 값은 어떻게 작동합니까? 단일 값 아래 첨자-- 그래서 내가 다시 돌아온다면-- 여기 새 줄로 이동하여 m을 입력한 다음 단일 값 아래 첨자가 있는 대괄호를 입력하고 실행하겠습니다. 단일 값 첨자는 행렬을 마치 행 벡터인 것처럼 취급하고 첫 번째 위치부터 계산을 시작합니다. 그래서 우리가 내 인덱스 함수의 결과를 보기 위해 로그로 돌아갈 때-- 그래서 단일 첨자는 그것을 행 벡터로 취급하고 행 단위로 증분한 것처럼 그 값의 위치를 얻기 위해 행 단위로 계산합니다. 그리고 나중에 JMP가 단일 첨자를 반환하는 행렬로 작업할 때 다른 예를 볼 수 있습니다. 여기서 마지막으로 할 일은 행렬을 인수로 사용할 수 있는 함수인 계산 함수가 있음을 설명하기 위한 일종의 임의 계산입니다. 그래서 우리는 이미 모양 함수와 포함을 보았습니다. 하지만 여기에서 새 줄로 이동하여 log를 입력한 다음 인수로 m을 입력합니다. 그리고 그 예에 대해 다른 것을 말씀드리겠습니다. 그래서 저는 모든 요소에 대해 계산을 수행하고 로 나누었습니다. 그러나 제가 언급하고 싶은 다른 것은 JSL에서 함수가 함수를 인수로 사용할 수 있다는 것입니다. 우리는 그것을 전체적으로 보게 될 것입니다. 우리는 이미 몇 가지 예를 보았습니다. 그래서 이 나누기 연산자는 실제로 m의 로그를 인수로 취하는 나누기 함수입니다. 그리고 나서 m의 로그를 계산하고 나누기 함수에 제공하기 위해 변수에 저장할 필요가 없었습니다. 나는 그 계산을 직접 할 수 있다. 그리고 다시, 내가 함수를 쓴다면 이것이 어떻게 보일지 여는 괄호를 나눌 것입니다. 연산자를 쉼표로 바꾸고 괄호를 닫습니다. 따라서 이러한 값을 저장하는 변수를 제공할 필요가 없습니다. 나누기 기능을 실행하는 동안 계산할 수 있습니다. 그래서 이것들은 목록과 행렬의 몇 가지 예와 이러한 특정 유형의 데이터 구조로 작업할 수 있는 몇 가지 방법입니다.