Minimize difference between vectors by varying scalar

5 visualizzazioni (ultimi 30 giorni)
Hello,
I'm trying to use fminsearch to find the scalar (a) that minimizes the difference between 2 vectors of dimension N, i.e. diff = abs(x - a*x_model).
The difference (diff) is a vector of dimensions 1xN and fminsearch outputs also a vector of dimensions 1xN, but I would like to just have a scalar value for a.
Also, should diff be normalized by the mean of x?
I hope my explanation is clear, thank you in advance.
  1 Commento
Torsten
Torsten il 18 Mag 2022
You cannot minimize a vector (in your case diff = abs(x-a*x_model)). You can minimize the norm of a vector.
For diff = x-a*x_model, you must decide which norm to take.

Accedi per commentare.

Risposta accettata

Torsten
Torsten il 18 Mag 2022
Modificato: Torsten il 18 Mag 2022
a = x_model\x
minimizes
norm(a*x_model - x)
If you want to minimize the difference in another norm (e.g. max(abs(a*x_model-x)) or sum(abs(a*x_model-x))), the solution will be different.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by