Inappropriate MATLAB warning when summing over columns

조회 수: 3 (최근 30일)
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
Stephen23
Stephen23 2017년 11월 5일
"I find this warning misleading because clearly the alternative won't work."
Really, why won't this work?:
sum(X,1)
Kaushik Lakshminarasimhan
Kaushik Lakshminarasimhan 2017년 11월 5일
It worked. I should've tried before asking.

댓글을 달려면 로그인하십시오.

채택된 답변

Guillaume
Guillaume 2017년 11월 5일
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).

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by