더 많은 벡터화 된 결과를 얻으려면 전체 행렬에 bsxfun
다음에 전체 행렬에 대해 sum
의 합을 계산하여 제품을 만들 수 있습니다 (à la Adam Farabaugh). LaTeX의 형태로 귀하의 식 (나 읽기 쉽게) 다음과 같습니다 r
는 벡터 동안 t
는 2 차원 매트릭스처럼
것 같습니다. 위의 문장을 보면 t
의 각 행을 가져 와서이 행에 r
을 곱하고 r
의 각 요소를 세 번째 힘까지 곱한 것처럼 보입니다. t
에있는 모든 행에 대해이 작업을 반복 한 다음 결과를 요약합니다. r
의 요소 수는 r
은 행 벡터, 및 t
의 열 양이라고 일치 가정, 같은 것을 할 :
이
prods = bsxfun(@times, r.^3, t);
result = sum(prods(:));
첫 번째 문은 r
을하고 매트릭스를 생성 곳의 각 행 행렬은 r
의 사본이됩니다. 이것은 bsxfun
의 결과이며 바이너리 싱글 톤 확장 기능의 약어입니다. 요컨대, 두 변수 사이에 더 작은 차원을 갖는 변수의 차원을 복제하고 두 변수가 크기가 일치하도록 요소를 복제합니다.
그런 다음이 새 행렬을 취하여 행렬 t
을 사용하여 요소 별 곱셈을 수행합니다. 이렇게하면이 행렬의 모든 요소를 간단하게 합합니다. sum
을 아담이 제안한 것과 같이 중첩 할 수 있지만 더 일반적으로 만들고 싶다면 을 열어 행렬을 풀어 단일 벡터가되도록 한 다음 sum
을이 단일 벡터에 적용하면됩니다.
고맙습니다.하지만 제 질문을 잘못 작성한 것처럼 보입니다. 그러나 실제 문제에 대한 해결책을 찾았으나이 질문에 대한 올바른 답변이므로 올바른 것으로 표시하겠습니다. 불편을 드려 죄송합니다. – Riley