Help to transform math formula to matlab
조회 수: 1(최근 30일)
표시 이전 댓글
Hello,
I am trying to transform this formula into matlab, but I can't use a for/while loop. X is an array with dimension n and every position receives this sum.

I tried like this, but I couldn't remove the loop here, can I achieve this without a loop?

I also tried to use arrayfun, but without success because every position of the array was receiving the same value.
댓글 수: 7
Dave B
2021년 11월 14일
Ah I was trying to avoid doing it for you so that you could feel the satisfaction :) Glad it feels simple, hope it stays that way as you delve deeper!
note this is the simplified version of what you wrote:
x = log(1:n) * sum(exp((1:m).^2))
답변(1개)
Sulaymon Eshkabilov
2021년 11월 15일
Using the vectorization:
format long
m=5;
jj=1:m;
XSum1 = sum(log(jj).*exp(jj.^2))
% Or alternatively
Xs = log(jj).*exp(jj.^2);
XSum2=sum(Xs)
% Sum stepby-step:
cumsum(Xs)
댓글 수: 1
Dave B
2021년 11월 15일
Note that i and j are not the same in the question, the correct answer here is:
x = log(1:n) * sum(exp((1:m).^2))
as discussed in the comments above.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!