C언어에서 행렬연산할때..
글쓴이: illparazzo / 작성시간: 화, 2008/06/03 - 6:30오전
안녕하세요
얼마전부터 c언어를 공부하고 있는데 모르는게 있어서 여쭈어봅니다.
int x[9] ={1,1,1,1,1,1,1,1,1}
int y[2] ={1,1}
에서
이 두배열을 곱할때
x[9] * y[2] 이렇게 말이죠;
x 배열을 수평이 아닌 수직으로 곱하게 하려면 어떻게 써야될까요?
수학에선 그냥 위첨자 T로 표현되던데
Forums:
배열을 만들어 한칸식 채우면 됩니다.
C 를 포함한 범용 언어는 행렬 연산을 기본적으로 지원하지는 않습니다. 즉 벡터/행렬
개념이 없습니다. x 와 y 는 사실 배열인데, 만약 벡터로 보고
outer product x^T y 를 구하고 싶다면 9x2 행렬에 해당하는 9x2 배열을 만든 다음에
for 문을 두번 써서 한칸씩 채우면 됩니다.
좀 더 여러 가지 연산에 대해 범용적으로 만들고 싶다면,
struct 나 class 를 이용해 벡터와 행렬을 정의하고 관련 연산을 함수로
정의하면 됩니다. 매우 범용적으로 만들 지 않을 거라면 그다지 어렵진
않습니다.
만약 큰 프로젝트에 다양한 벡터, 행렬 연산을 써야 할 경우는 외부 라이브러리를
사용해야 합니다.
제가 그런 삽질을
제가 그런 삽질을 했던 적이 있습니다.
http://snowall.tistory.com/348
그 뒤로 GSL을 배우기 시작했죠...-_-;
--------------------------
snowall의 블로그입니다.
http://snowall.tistory.com
피할 수 있을때 즐겨라! http://melotopia.net/b
가장
가장 간단하게는
정도가 되겠죠.
그건 그렇고, 9*1 행렬과 2*1행렬을 어떻게 곱하시려고...;;
--------------------------
snowall의 블로그입니다.
http://snowall.tistory.com
피할 수 있을때 즐겨라! http://melotopia.net/b
전 다음과 같이 matrix
전 다음과 같이 matrix 관련 함수들을 만들어서 사용했었습니다.
http://trac.unfix.net/browser/snippet/image_projection/matrix.h
http://trac.unfix.net/browser/snippet/image_projection/matrix.c
--
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
댓글 달기