Clear Filters
Clear Filters

Make very small numbers in complex matrix zero

8 views (last 30 days)
format shortG
a11 = 0;
a12 = exp(-j*0.5*pi);
a21 = exp(-j*0.5*pi);
a22 = 0;
S = [a11, a12; a21, a22]
S =
0 + 0i 6.1232e-17 - 1i 6.1232e-17 - 1i 0 + 0i
A = ((1+a11)*(1-a22)+a12*a21)/(2*a21);
B = ((1+a11)*(1+a22)-a12*a21)/(2*a21);
C = ((1-a11)*(1-a22)-a12*a21)/(2*a21);
D = ((1-a11)*(1+a22)+a12*a21)/(2*a21);
X = [A, B; C, D]
X =
6.1232e-17 - 3.7494e-33i 0 + 1i 0 + 1i 6.1232e-17 - 3.7494e-33i
X_cleanup = X;
X_cleanup(abs(X_cleanup)<0.0001) = 0
X_cleanup =
0 + 0i 0 + 1i 0 + 1i 0 + 0i
Is there a way to automatically ask matlab to output matrix like what's in the X_cleanup instead of X?
Is there anyting under 'format'?
  2 Comments
Mathieu NOE
Mathieu NOE on 5 Oct 2021
hi
why not simply make the clean up a function that you can call anytime ?
Math Works
Math Works on 5 Oct 2021
It's just a bit annoying having to do that.

Sign in to comment.

Answers (1)

Matt J
Matt J on 5 Oct 2021
Edited: Matt J on 5 Oct 2021
Is there a way to automatically ask matlab to output matrix like what's in the X_cleanup instead of X?
No, but note that if you expect your input data to be integer-valued, you can avoid the issue by generating them in integer form directly:
format shortG
a11 = 0;
a12 = -1i;
a21 = -1i;
a22 = 0;
S = [a11, a12; a21, a22]
S =
0 + 0i 0 - 1i 0 - 1i 0 + 0i
A = ((1+a11)*(1-a22)+a12*a21)/(2*a21);
B = ((1+a11)*(1+a22)-a12*a21)/(2*a21);
C = ((1-a11)*(1-a22)-a12*a21)/(2*a21);
D = ((1-a11)*(1+a22)+a12*a21)/(2*a21);
X = [A, B; C, D]
X =
0 + 0i 0 + 1i 0 + 1i 0 + 0i
  5 Comments
Matt J
Matt J on 5 Oct 2021
Well like I said, you can't make Matlab truncate results to zero on autopilot.
I think you would regret it even if it were implementable. In the situation you describe, Matlab would have no way of knowing if a computation was the final one or just an intermediate step in a future computation you are planning, so basically truncation would occur at every step in your computational pipeline and accumulate unpredictably.

Sign in to comment.

Categories

Find more on Structures in Help Center and File Exchange

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!