Make very small numbers in complex matrix zero
Mostrar comentarios más antiguos
format shortG
a11 = 0;
a12 = exp(-j*0.5*pi);
a21 = exp(-j*0.5*pi);
a22 = 0;
S = [a11, a12; a21, a22]
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_cleanup = X;
X_cleanup(abs(X_cleanup)<0.0001) = 0
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 comentarios
Mathieu NOE
el 5 de Oct. de 2021
hi
why not simply make the clean up a function that you can call anytime ?
Math Works
el 5 de Oct. de 2021
Respuestas (1)
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]
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]
5 comentarios
Math Works
el 5 de Oct. de 2021
No, they are obviously not integers
No, that is not obvious. In your example, it is clear that the complex numbers are intended to have integer-valued real and imaginary parts. The function call,
a12 = exp(-j*0.5*pi);
would generate a12=-1i in an infinite precision computer.
Math Works
el 5 de Oct. de 2021
Editada: Math Works
el 5 de Oct. de 2021
Matt J
el 5 de Oct. de 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.
Math Works
el 6 de Oct. de 2021
Categorías
Más información sobre Logical en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
