Question

If I have this I get an error

sum(vector) == cumsum(vector)(length(vector))

>> Error: ()-indexing must appear last in an index expression.

I know I can just do:

Vec1 = cumsum(mat);
sum(mat) == Vec1(length(mat))

which will return a logical 1.

Is there an alternative to get everything on a single line?

Was it helpful?

Solution

Well, if you are absolutely determined to do it in one line,

sum(vec) == subsref(cumsum(vec),struct('type','()','subs',{{numel(vec)}}))

But this is a borderline abuse of subsref, which is generally used for overloading the subscripting operators (i.e. {}, (), .) in custom classes.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top