Compare elements from two matrix.

2 ビュー (過去 30 日間)
Nikita Zyk
Nikita Zyk 2020 年 5 月 13 日
コメント済み: Nikita Zyk 2020 年 5 月 15 日
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

採用された回答

Tommy
Tommy 2020 年 5 月 13 日
How about this?
x = x1;
idx = abs(x1) < abs(x2);
x(idx) = x2(idx);
  6 件のコメント
Tommy
Tommy 2020 年 5 月 14 日
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 2020 年 5 月 15 日
It's good! Thank you so much! ;)

サインインしてコメントする。

その他の回答 (1 件)

Olawale Ikuyajolu
Olawale Ikuyajolu 2020 年 5 月 13 日
new_matrix = max(abs(x1),abs(x2);
  3 件のコメント
Olawale Ikuyajolu
Olawale Ikuyajolu 2020 年 5 月 13 日
Nikita Zyk
Nikita Zyk 2020 年 5 月 13 日
Unfortunetly, it has less efficiency. ;(

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeStartup and Shutdown についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by