Why is the string below the first conditional not printed?
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I need help understanding why the string below the first conditional is not printed when AA, BB, CC are clearly equal. See attachment below

2 Kommentare
dpb
am 13 Nov. 2021
(AA==BB) == 1 && (CC) == 1
is not good syntax.
if AA==1 & BB==1 & CC==1
will work; more succinct forms can be written if you would use arrays for variables instead of indivdually naming the variables (generally a bad practice to use MATLAB efficiently to have mulitple similarly-named/functionally equivalent variables as above).
Antworten (1)
Cris LaPierre
am 14 Nov. 2021
Bearbeitet: Cris LaPierre
am 14 Nov. 2021
Because the result of the dot products is not exactly 1.
A = [2 2 -1+4i]/5;
B = circshift(A,-1);
C = circshift(B,-1);
AA = dot(A,A)
BB = dot(B,B)
CC = dot(C,C)
% now subtract 1. Result is not 0
AA-1
BB-1
CC-1
2 Kommentare
dpb
am 2 Dez. 2021
Floating point arithmetic is only an approximation to algebra...see <Goldberg - What Every Computer Scientist Should Know> for detailed explanation. There are some other discussions and examples in the documentation as well.
Siehe auch
Kategorien
Mehr zu Environment and Settings finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!