커뮤니티
행렬계산을 위한 사용자함수 Array 입출력 관련 문의드립니다.
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 통째로 리턴 못한다면 요소를 하나씩 내보내야 하나요?
(구현하려고 하는 것은 행렬 요소별 뺄셈, 그리고 행렬-행렬곱입니다.)
감사합니다.