Find the key for vector transformation

1 Ansicht (letzte 30 Tage)
Ali
Ali am 27 Sep. 2022
Kommentiert: Ali am 27 Nov. 2022
Hello friends, Below is the optimization work. Even though I woked with fminsearch and similar tools, I cannot figure this out. Any help? Thank you very much. A & B & KEY are vectors of same length. the KEY is unknown. find the KEY such that minimize the function B-A(KEY).
clc;clear
A= [25 21.2 0.4 3.5 15 60 14 8.1 16.9 1.1];
KEY= [3 5 8 1 10 9 7 6 2 4];
B= A(KEY) + rand(1,10);

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 27 Sep. 2022
You do not want to minimize B-A(KEY): those are vectors and you cannot minimize a vector.
A= [25 21.2 0.4 3.5 15 60 14 8.1 16.9 1.1];
KEY= [3 5 8 1 10 9 7 6 2 4];
B= A(KEY) + rand(1,10);
Kp = perms(KEY);
values = sum((B - A(Kp)).^2,2);
[bestresult, idx] = min(values);
bestresult
bestresult = 3.4348
Kp(idx,:)
ans = 1×10
3 5 8 1 10 9 7 6 2 4
  5 Kommentare
Walter Roberson
Walter Roberson am 28 Sep. 2022
That's why I was talking about custom functions to enforce integer permutation.
Ali
Ali am 28 Sep. 2022
Thank you so much, I will try ga.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Matt J
Matt J am 28 Sep. 2022
  1 Kommentar
Ali
Ali am 27 Nov. 2022
Thank you for late reply. I saw your comment now, I appreciate and take a look.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by