I have matrix A= [1 1 4; 4 4 2; 1 2 4]
and I need to sum the first and third row together and get (1 1 4) (1 2 4)
using functions of Matlab, such as sum()
, not only while
and for
. I know how to count it one by one, using for
.
I tried to use sum
in different ways, but I always get the sum of the whole matrix
CodePudding user response:
A lot of working with Matlab is accessing rows and columns of arrays. This is a reasonable first problem.
%Input
A = [1 1 4; 4 4 2; 1 2 4]
%Written out, row sum
out_1 = A(1,:) A(3,:)
%Using the sum function, row sum
out_2 = sum( A([1 3],:) )
%To get the desired single value, I usually use `sum` twice, like this
out_scalar = sum(sum( A([1 3],:) ))
%But, if you are using 2018b or later, you can do this instead
out_scalar = sum( A([1 3],:) , 'all')