For matrix A you cannot do: A.^2(:)
1 view (last 30 days)
Show older comments
I have a matrix A=[1 2;3 4]. I want to sum the squares of the elements in the matrix. So I tried
sum(A.^2(:))
I cannot do this. The problem is A.^2(:). How do I solve this? Parenthesis around A.^2 does not help.
A workaround is
sum(reshape(A.^2,[],1))
Related to this is for example:
1+A(:)
This is OK. But this is not:
A+1(:)
Parenthesis around A+1 does not work.
2 Comments
Paul
on 28 Jan 2024
A=[1 2;3 4];
1 + A(:)
% A + 1(:) not sure what this is expected to do?
% maybe
A + 1
% or
A(:) + 1
Accepted Answer
Matt J
on 28 Jan 2024
Edited: Matt J
on 28 Jan 2024
You cannot apply ()-indexing to mathematical expressions, function calls, or literal constants, only to variables. So, in your case, you would do,
sum(A(:).^2)
Note that the result of other indexing expressions are considered variables for this purpose, so these are okay:
s.a={[5,1]}; s.b=[10,3,2];
s.a{1}(:)
s.b(:)
0 Comments
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!