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

 采纳的回答

For loop is not needed. Use can use vectorized operation
Sum = sum(V.^2, 'all');

16 个评论

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);
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 ???
Please create a new question and paste the link in the comment below. I will try to help.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by