현재 for 루프를 사용하여 일련의 함수를 반복하는 프로그램이 있습니다. 나는 parfor를 사용해 보았지만 대학의 Matlab 버전에서만 작동합니다. for 루프가 필요하지 않도록이 핸들을 벡터화하고 싶습니다. 사용하고있는 방정식은 기본적으로 서로 다른 유형의 Bessel 함수를 호출하며 각각의 함수에 포함되어 있습니다.Matlab 벡터화 방정식 및 행렬 곱셈
다음은 내가하려는 일입니다. 각 m 값에 대해 필요한 각 행렬에 대한 행렬 요소의 벡터를 작성하십시오. 그런 다음 각 전체 매트릭스를 만듭니다. 나는 이것이 올바르게 작동하고 있다고 생각한다.
이 오류를 던지고 난 그냥 지칠대로 지친 오류 얻을 가운데 2 × 2로 왼쪽 × 2를 곱하더라도 ... 최종 행렬 곱셈에 :
을 ??? ==> mtimes를 사용한 오류 내부 행렬 치수가 일치해야합니다. == 오류> @ (m) CL (m) * CM (m) * CR (m)
% Vector for summation. 1 row, 301 columns with data from 0->300
m_max=301;
m=[0:m_max-1];
% Build the 300 elements for the left 2x2 matrix.
[email protected](m) H1(m,alpha1);
[email protected](m) H2(m,alpha1);
[email protected](m) n1*dH1(m,alpha1);
[email protected](m) n1*dH2(m,alpha1);
% Build the 300 elements for the middle 2x2 matrix.
[email protected](m) n1*dH2(m,alpha2);
[email protected](m) -1*H2(m,alpha2);
[email protected](m) -1*n1*dH1(m,alpha2);
[email protected](m) H1(m,alpha2);
% Build the 300 elements for the right 2x1 matrix.
[email protected](m) J(m,alpha3);
[email protected](m) n2*dJ(m,alpha3);
% Build the left (CL), middle (CM) and right (CR) matrices.
[email protected](m) [CL_11(m) CL_12(m);CL_21(m) CL_22(m)];
[email protected](m) [CM_11(m) CM_12(m);CM_21(m) CM_22(m)];
[email protected](m) [CR_11(m);CR_21(m)];
% Build the vector containing the products of each triplet of
% matrices.
[email protected](m) CL(m)*CM(m)*CR(m);
cl=CL(m)
cm=CM(m)
cr=CR(m)
c=CL(m)*CM(m)*CR(m)
당신이 어떤 제안이나 권고 사항이있는 경우, 나는 그것을 대단히 감사하겠습니다! 저는 아직 Matlab의 초보자이며 행렬과 벡터를 사용하여 더 높은 수준의 능력을 개발하려고합니다.
감사합니다.
대단히 감사합니다! 나는 이것을 시도 할 것이다 ... 그것은 총체적인 의미를 가진다. –