Azzera filtri
Azzera filtri

Compare elements from two matrix.

1 visualizzazione (ultimi 30 giorni)
Nikita Zyk
Nikita Zyk il 13 Mag 2020
Commentato: Nikita Zyk il 15 Mag 2020
Hi!
I want to compare elements for two matrix and then create another matrix with maximal element (comparing abs(x1) i abs(x2), not x1 i x2).
I wrote this:
But maybe it's possible to do it quicker and more efficient?
for i = 1:numel(x1)
if (abs(x1(i)) > abs(x2(i)))
x(i) = x2(i);
else
x(i) = x1(i);
end
end

Risposta accettata

Tommy
Tommy il 13 Mag 2020
How about this?
x = x1;
idx = abs(x1) < abs(x2);
x(idx) = x2(idx);
  6 Commenti
Tommy
Tommy il 14 Mag 2020
Ah okay thank you for the explanation!
It's not very pretty, but how well does this do?
function x = minroot(a,b,c)
sdel = sqrt(b.^2 - 4*a.*c);
idx = b < 0;
x(idx) = 2*c(idx)./(-b(idx) + sdel(idx));
x(~idx) = (-b(~idx) - sdel(~idx))./(2*a(~idx));
x2(~idx) = 2*c(~idx)./(-b(~idx) - sdel(~idx));
x2(idx) = (-b(idx) + sdel(idx))./(2*a(idx));
idx = abs(x) > abs(x2);
x(idx) = x2(idx);
end
Nikita Zyk
Nikita Zyk il 15 Mag 2020
It's good! Thank you so much! ;)

Accedi per commentare.

Più risposte (1)

Olawale Ikuyajolu
Olawale Ikuyajolu il 13 Mag 2020
new_matrix = max(abs(x1),abs(x2);
  3 Commenti
Nikita Zyk
Nikita Zyk il 13 Mag 2020
Unfortunetly, it has less efficiency. ;(

Accedi per commentare.

Categorie

Scopri di più su Line Plots in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by