Hello, Could I please get some assistance on how to update array elements with elements from another array, For example
A = rand(10,10);
B = rand(10,10);
Result = A-B;
%Identifty which elements are greater than 0
SlctElemnts = Result > 0 ;
%%Update all the elements in A that is less than 0 with the element in B
% A (Result<0);
disp(A)

 採用された回答

Rik
Rik 2018 年 5 月 26 日

1 投票

How about something like this:
A = rand(10,10);
B = rand(10,10);
Result = A-B;
LogicalIndex= Result<0;
A(LogicalIndex)=B(LogicalIndex);

1 件のコメント

Zaharaddeen Hussaini
Zaharaddeen Hussaini 2018 年 5 月 27 日
So B will take in Logical Index as well apparently. Missed that out. Thank you

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

その他の回答 (1 件)

Ameer Hamza
Ameer Hamza 2018 年 5 月 26 日
編集済み: Ameer Hamza 2018 年 5 月 26 日

1 投票

For indexing based solution, refer to Rik's answer. But in this specific case, you are trying to find the element-wise maximum value from both A and B. So you can do it faster using max() function,
A = max(A, B)

1 件のコメント

Zaharaddeen Hussaini
Zaharaddeen Hussaini 2018 年 5 月 27 日
This works in my case as well like you pointed out. However index based solution is what I needed here. Thank you

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

カテゴリ

ヘルプ センター および File Exchange で Matrix Indexing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by