Matching two numbers using only 2 decimal points

23 visualizaciones (últimos 30 días)
joseph Frank
joseph Frank el 8 de En. de 2012
Comentada: Anu el 16 de Abr. de 2024 a las 6:11
Hi,
I have 2 numbers that I want to match in my program and if these don't match I want to receive an error message. The two numbers that I want to match should match only up to the first two decimal points. For example,
A=3.82 and B=3.829 should match since 3.82 is common. On the other hand, A=3.82 and B=3.8 don't match .How can I match A and B?

Respuesta aceptada

Chandra Kurniawan
Chandra Kurniawan el 8 de En. de 2012
A = 3.82;
B = 3.829;
C = 3.82;
D = 3.8;
Astr = num2str(A);
Bstr = num2str(B);
Astr = Astr(strfind(Astr,'.'):end);
Bstr = Bstr(strfind(Bstr,'.'):end);
if length(Astr) < 3, Astr = strcat(Astr,'0'); end
if length(Bstr ) < 3, Bstr = strcat(Bstr,'0'); end
strcmp(Astr(1:3),Bstr(1:3))

Más respuestas (1)

Robert Cumming
Robert Cumming el 8 de En. de 2012
compare = @(n1,n2,n_dcp) round(n1*10^n_dcp)==round(n2*10^n_dcp);
>> compare(1.23,1.234,2)
ans =
1
>> compare(1.23,1.2,2)
ans =
0
  1 comentario
Anu
Anu el 16 de Abr. de 2024 a las 6:11
'compare' function requires one of the following Toolbox:
1. System Identification Toolbox
2. Model Predictive Control Toolbox
3. Predictive Maintenance Toolbox
Is there any alternative method

Iniciar sesión para comentar.

Categorías

Más información sobre Build Configuration en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by