Afficient way to create "sum matrix"

조회 수: 1 (최근 30일)
Orr Streicher
Orr Streicher 2021년 2월 1일
편집: Orr Streicher 2021년 2월 1일
Hi,
So i would like to implement a function that get a vector as input lets :
g=[g1, g2, g3]
and return a matrix that contain a sum of pairs: so for g , the output matrix G contain 9 elements the G(i,j)=g(i)+g(j)
The problem is that g will be very large vector.
Does anyone know an efficient way to do that with sparse matrices
Thanks

채택된 답변

Stephen23
Stephen23 2021년 2월 1일
g = 1:3;
m = g+g(:)
m = 3×3
2 3 4 3 4 5 4 5 6

추가 답변 (1개)

Orr Streicher
Orr Streicher 2021년 2월 1일
Hi,
So its looks like i was happy too soon =P
Since my vector g is very large ( vector in size of 65536)
I got memrory error ("Error using + Requested 65536x65536 (64.0GB)...)
Maybe there is other solution?
  댓글 수: 2
Stephen23
Stephen23 2021년 2월 1일
편집: Stephen23 2021년 2월 1일
You could create a function, e.g.:
g = 1:3
g = 1×3
1 2 3
f = @(r,c)sum(g([r,c]));
f(1,2)
ans = 3
Your question mentions sparse matrices: are most of the values in g zero?
Orr Streicher
Orr Streicher 2021년 2월 1일
편집: Orr Streicher 2021년 2월 1일
Hi,
In my case g doent have to be sparse (most of the values are not zero)
In addition i need the matrix form of G (for follwing calculations)

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

카테고리

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

태그

Community Treasure Hunt

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

Start Hunting!

Translated by