How can I compare two rows of an array withot for loop?

7 ビュー (過去 30 日間)
Collegue
Collegue 2020 年 4 月 28 日
コメント済み: Ameer Hamza 2020 年 4 月 28 日
Hi! I want to compare two rows of an array. I want to do this:
I hace a = [1 NaN 2 NaN;[2 NaN NaN 3];
I want to create another array without using for loop iteration and obtain the next array
--> If both have a value I want to obtain the mean value of them.
--> if one of them have NaN I want to obtain the number
--> If both have NaN I want to delete it
I want to obtain this:
c = [1,NaN,2,3]

採用された回答

Ameer Hamza
Ameer Hamza 2020 年 4 月 28 日
Try this
a = [1 NaN 2 NaN];
b = [2 NaN NaN 3];
c = nanmean([a; b])
Result:
c =
1.5000 NaN 2.0000 3.0000
  4 件のコメント
Collegue
Collegue 2020 年 4 月 28 日
YEs but know I want to sompare them. If both of them have a value I want to substract and if one of them have NaN obtain the other value
Ameer Hamza
Ameer Hamza 2020 年 4 月 28 日
Following code is for a-b, If both are NaN, the output is also NaN.
a = [1 NaN 2 NaN];
b = [2 NaN NaN 3];
x = [a;b];
mask = all(isnan(x));
c = nansum([a; -b]);
c(mask) = nan;
Result
>> c
c =
-1 NaN 2 -3

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeData Type Conversion についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by