Inappropriate MATLAB warning when summing over columns
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Kaushik Lakshminarasimhan
le 5 Nov 2017
Commenté : Kaushik Lakshminarasimhan
le 5 Nov 2017
Suppose X is an Nx10 matrix and I want to sum over each of the 10 columns, regardless of number of rows. I use:
Y = sum(X);
However, N can sometimes be equal to 1 in which case X only has one row. The above operation will now sum over the elements of that row. To avoid this, I change my operation to:
Y = sum(X',2)
which works for any generic N. Now when I hover my cursor over "sum", I see the following warning: Instead of using transpose ('), consider using a different DIMENSION input argument to SUM. I find this warning misleading because clearly the alternative won't work. Is there an alternative to using transpose in my case?
2 commentaires
Stephen23
le 5 Nov 2017
"I find this warning misleading because clearly the alternative won't work."
Really, why won't this work?:
sum(X,1)
Réponse acceptée
Guillaume
le 5 Nov 2017
The warning is entirely accurate, if you want sum(X) to sum across the rows whether or not X is a vector (i.e. sum will always return a vector of size 1 x size(X, 2), then you should use
Y = sum(X, 1);
Your Y = sum(X', 2) is also the same as Y = sum(X, 1)' and is never equivalent to your Y=sum(X) (it's the conjugate transpose for non-vectors).
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Logical 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!