Compare elements from two matrix.

2 Ansichten (letzte 30 Tage)
Nikita Zyk
Nikita Zyk am 13 Mai 2020
Kommentiert: Nikita Zyk am 15 Mai 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

Akzeptierte Antwort

Tommy
Tommy am 13 Mai 2020
How about this?
x = x1;
idx = abs(x1) < abs(x2);
x(idx) = x2(idx);
  6 Kommentare
Tommy
Tommy am 14 Mai 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 am 15 Mai 2020
It's good! Thank you so much! ;)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Olawale Ikuyajolu
Olawale Ikuyajolu am 13 Mai 2020
new_matrix = max(abs(x1),abs(x2);
  3 Kommentare
Nikita Zyk
Nikita Zyk am 13 Mai 2020
Unfortunetly, it has less efficiency. ;(

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Startup and Shutdown finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by