Performing an Operation on a Matrix Using Complex Numbers

2 views (last 30 days)
MarshallSc
MarshallSc on 7 Jan 2022
Edited: MarshallSc on 7 Jan 2022
I have a matrix with the operation perfomed as:
a = rand(10,10);
a_x = @(x) sum((x-a)./(x+a),'all');
aa = arrayfun(a_x,a);
I want the operation for each pair to be performed in complex format. For example for one pair of the matrix ( a(1) & a(2) ) points, it will be like:
complex(a(1),-a(2)) / complex(a(1),a(2)); %% a(1) - a(2)i / a(1) + a(2)i
Which will give me:
ans =
-0.0313 - 0.9995i
I want this operation (sum of all the relations for each point) to be performed for all the matrix components (may original matrix is 81*81).
  2 Comments
MarshallSc
MarshallSc on 7 Jan 2022
Yessir, including K,L = I,J, since I need the sum for each point, they need to be included.
This will give me a (81 x 81) in complex form for the aa (summing every relation for each point, same as):
a_x = @(x) sum((x-a)./(x+a),'all');
The difference is the subtraction in the nominator and summation in the denominator will be like:
a_x = @(x) sum ((x - ai)./(x + ai), 'all'): % obviously this is not correct, just wanted to show what I mean

Sign in to comment.

Accepted Answer

Matt J
Matt J on 7 Jan 2022
Edited: Matt J on 7 Jan 2022
sz=size(a);
C=(a(:)-1i*a(:).');
result=reshape(C./conj(C) , [sz,sz]);
  4 Comments

Sign in to comment.

More Answers (1)

Matt J
Matt J on 7 Jan 2022
sz=size(a);
C=2*atan(a(:),a(:).');
result=reshape( exp(1j*C), [sz,sz]);

Categories

Tags

Community Treasure Hunt

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

Start Hunting!