フィルターのクリア

Compare elements from two matrix.

1 回表示 (過去 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 ExchangeLine Plots についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by