How do I find which element of the matrix was used for this equation?

1 visualización (últimos 30 días)
Lets say I have 2 single column matrices u16 and uexact16. They both have the same number of elements (i). I need to solve the following equation :
e = max(abs(u16(i) - uexact16(i)) / uexact16(i)
The problem is that after I find the maximum difference (by creating a matrix with all the differences), I don't know how to call which uexact16(i) was used in order to divide with it.
for i = 1:17
absDifference(i) = abs(u16(i) - uexact16(i));
end
emax = (max(absDifference'))/ ????

Respuesta aceptada

Marco Riani
Marco Riani el 1 de Abr. de 2021
Hi, just call max with two output arguments
Please let me know if rowWithMaximumDifference below is what you want
Best wishes
Marco
n=10;
u16=randn(n,1);
uexact16=randn(n,1);
[~,rowWithMaximumDifference]=max(abs(u16-uexact16))
  1 comentario
Konstantinos Angelos Maskalaris
Konstantinos Angelos Maskalaris el 1 de Abr. de 2021
Yes that's exactly it thank you !!!
[M,I] = max(absDifference');
This way M = max value and I = "position of said value on the matrix". After that all I had to do was divide by uexact16(I)
Thank you for the response

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by