커뮤니티

행렬계산을 위한 사용자함수 Array 입출력 관련 문의드립니다.

프로필 이미지
genius
2016-09-11 20:54:56
108
글번호 101877
답변완료
관리자님 안녕하세요? 수식을 구현하는데 행렬계산이 필요한 상황입니다. 그러나 기본 수식에는 행렬계산이 없는것 같아 이를 사용자 함수로 만들 수 있는지 문의드립니다. 2차원 Array로 행렬들을 만들고 이를 사용자 함수로 보내 계산하려고 합니다. 사용자 함수에서 Input은 Array 타입으로 받을 수 있는 것 같은데 이를 계산한 결과값 2차원 Array는 어떻게 리턴할 수 있는지 문의드립니다. 혹시 Array 통째로 리턴 못한다면 요소를 하나씩 내보내야 하나요? (구현하려고 하는 것은 행렬 요소별 뺄셈, 그리고 행렬-행렬곱입니다.) 감사합니다.
사용자 함수
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-09-12 15:24:41

안녕하세요 예스스탁입니다. 함수에서 외부변수를 NumericArrayRef로 지정하시고 함수내부에서 값계산후 해당 배열변수로 리턴되게 하시면 됩니다. 아래는 간단한 함수 내용입니다. 사용자함수명 array_ref #n1,n2는 큰의미가 있는 단어는 아닙니다. #2차원 배열을 나타내기 이해 지정한 내용입니다. input : price[n1,n2](NumericArrayRef); price[0,0] = 0; price[0,1] = 1; price[1,0] = 2; price[1,1] = 3; #함수가 최종리턴값은 있어야 완성되므로 임의의 숫자지정 array_ref = 9; 위내용을 사용자함수로 작성후 아래 지표식 적용하시면 aaa배열은 array_ref함수를 호출한뒤에는 9,8,7,6 값이 0,1,2,3으로 변경된것을 확인하실수 있습니다. array : aaa[2,2](0); aaa[0,0] = 9; aaa[0,1] = 8; aaa[1,0] = 7; aaa[1,1] = 6; Messagelog("%.f %.f %.f %.f",aaa[0,0],aaa[0,1],aaa[1,0],aaa[1,1]); var1 = array_ref(aaa); Messagelog("%.f %.f %.f %.f",aaa[0,0],aaa[0,1],aaa[1,0],aaa[1,1]); 위 내용 참고하셔서 수식완성하시기 바랍니다. 즐거운 하루되세요 > genius 님이 쓴 글입니다. > 제목 : 행렬계산을 위한 사용자함수 Array 입출력 관련 문의드립니다. > 관리자님 안녕하세요? 수식을 구현하는데 행렬계산이 필요한 상황입니다. 그러나 기본 수식에는 행렬계산이 없는것 같아 이를 사용자 함수로 만들 수 있는지 문의드립니다. 2차원 Array로 행렬들을 만들고 이를 사용자 함수로 보내 계산하려고 합니다. 사용자 함수에서 Input은 Array 타입으로 받을 수 있는 것 같은데 이를 계산한 결과값 2차원 Array는 어떻게 리턴할 수 있는지 문의드립니다. 혹시 Array 통째로 리턴 못한다면 요소를 하나씩 내보내야 하나요? (구현하려고 하는 것은 행렬 요소별 뺄셈, 그리고 행렬-행렬곱입니다.) 감사합니다.