Effacer les filtres
Effacer les filtres

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

2 vues (au cours des 30 derniers jours)
Collegue
Collegue le 28 Avr 2020
Commenté : Ameer Hamza le 28 Avr 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]

Réponse acceptée

Ameer Hamza
Ameer Hamza le 28 Avr 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 commentaires
Collegue
Collegue le 28 Avr 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 le 28 Avr 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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Cell Arrays dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by