Filter löschen
Filter löschen

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

2 Ansichten (letzte 30 Tage)
Collegue
Collegue am 28 Apr. 2020
Kommentiert: Ameer Hamza am 28 Apr. 2020
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]

Akzeptierte Antwort

Ameer Hamza
Ameer Hamza am 28 Apr. 2020
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 Kommentare
Collegue
Collegue am 28 Apr. 2020
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 am 28 Apr. 2020
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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Cell Arrays 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