How can I compare two rows of an array withot for loop?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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]
0 commentaires
Réponse acceptée
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
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
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Cell Arrays dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!