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?
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.
来源:https://stackoverflow.com/questions/19143854/matlab-alternative-to-creating-an-extra-vector