Improving modal analysis code
조회 수: 5 (최근 30일)
이전 댓글 표시
Hi everyone!
My code resolves a dynamic problem with coupled equation, so I study this problem in the modal space.
I have the matrix of MODAL solution (each column is the solution for time t*, with t* = 0,1,2,.. T) but I want to know the NODAL SOLUTION, so I wrote this code to execute inverse modal transformation (PHI is the modal matrix while BI2 is a translation coordinates matrix, such as g = BI2*PHI*y, where g is in the nodal space while y in the modal):
% y is the modal solution matrix
% g is the nodal solution matrix
g = zeros(size(y));
for i=1:length(y)
g(:,i) = BI2*PHI*y(:,i);
end
In fact, the modal inverse relation is true column by column [y(:,i) -> g(:,i)].
How can I improve my code? This for loop is very slow when I have a lot of dof.. I think I have to rewrite it, but I don't know how.
Thanks in advance! Pinco
댓글 수: 0
채택된 답변
Matt Kindig
2012년 8월 6일
Hi Pinco,
What are the dimensions of BI2, PHI, and y? You might be able to use matrix multiplication directly to eliminate the loop. You may just be able to write it as:
g = BI2*PHI*y;
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!