Optimizing a matrix of values
Afficher commentaires plus anciens
Hi, I need help in optimizing a matrix of values. Assuming a 3x3 matrix, I would have this matrix:

I needed the values of A to F be optimized. What I would usually do is to just take [A B C D E F] as an input value and call it a day. To be fair, this works decently.
My main issue is that my matrix usually changes size, ie. it becomes this:

I will have to change the input to [A B] this time. My question, is, is there a more elegant way of doing these things: Is there a way for me to simply plug in the two matrices without reshaping them and forcing 0 on the diagonal?
Réponse acceptée
Plus de réponses (1)
madhan ravi
le 14 Déc 2023
a = zeros(3);
[m, n] = size(a);
a(~diag(1 : m)) = 1 : m * n - m;
a.'
2 commentaires
madhan ravi
le 14 Déc 2023
Modifié(e) : madhan ravi
le 14 Déc 2023
a = zeros(2);
[m, n] = size(a);
a(~diag(1 : m)) = m * n - m : -1 : 1
%a(~diag(1 : m)) = flip(your_input)
madhan ravi
le 14 Déc 2023
where 1 : m * n - m is your input
Catégories
En savoir plus sur Nonlinear Optimization dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!