multiplying a matrix into its transpose

조회 수: 22 (최근 30일)
Mohsen
Mohsen 2012년 4월 17일
댓글: Prasad Reddy 2020년 4월 23일
Hi,
I have an sparse and large matrix (A). I would like to do this operation:
C=A*(A');
Using above command takes about 17 sec if size(A)=[31494 277254].
Is there any more efficient command to do the task? Since C matrix will be symmetric so compiler just need to compute half of the C.
  댓글 수: 1
Prasad Reddy
Prasad Reddy 2020년 4월 23일
First define matrix c as a zeros matrix of same size and chech if it works.
This is called pre allocation.
Generally preallocation reduces the timeof execution.
command is
C=zeros(31494,277254)
C=A*(A')
if you want to form only half of the matrix then yu can use for lops.

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Programming에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by