how to implementing energy function?

i want to implement this above energy function and i tried this following code, but i am getting 'Index exceeds matrix dimensions.' error. How can do this?
e=[];
V=WT.dec{1,1};
for x=1:17
for y=1:19
for z=1:18
e = e + (V(x,y,z))^2;
end
end
end

 Accepted Answer

Ameer Hamza
Ameer Hamza on 9 Apr 2020
Edited: Ameer Hamza on 9 Apr 2020
For loop is not needed. Use can use vectorized operation
Sum = sum(V.^2, 'all');

16 Comments

No not working getting error.
What is the error? Please paste complete error message.
Which MATLAB release are you using?
'Subscript indices must either be real positive integers or logicals.'
In MATLAB 2016b, change the line to
Sum = sum(V(:).^2);
Same error.
what about
sum(sum(sum(V.^2)))
make sure that no variable sum() is defined in your workspace. run
clear sum
before running the code.
I am getting again same error.
I am not sure about the issue. There seem to be some issue with you MATLAB installation. What is the output of
which sum
Sorry, the correct command was
clear sum
not clear run, I have updated my comment. Try it again.
Thank you so much it is working.
I am having some confusion with the other two equations, will u plz help me out ???
Ameer Hamza
Ameer Hamza on 11 Apr 2020
Edited: Ameer Hamza on 11 Apr 2020
Please create a new question and paste the link in the comment below. I will try to help.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!