Function only computing first element of array used as input

1 view (last 30 days)
I am trying to use a MATLAB function to generate a plot for the function :
As such I am using the linspace function to generate an input array that I then aim to give to the function i wrote to get data to be plotted. But the function only processes the first element of the Array generated by linspace. The function appears to work correctly for singular values but not for arrays.
function S = FXSUM(x)
Tot = 0; % reset Total
for n = 2:x % for loop for Function Summs at a iterations
it = (1/(n*((log(n))^2))); % provided function
Tot = Tot + it % sum of function iterations
end
S = Tot; % Out value equal to function iterrations total
end

Accepted Answer

Cris LaPierre
Cris LaPierre on 23 Mar 2023
Moved: Cris LaPierre on 23 Mar 2023
Your function is not written to accept a vector as input. You likely need to add a second loop to run for each element of your input vector.
Right now, it creates your loop counter using 2 and the first element of x.
x = 5:8
x = 1×4
5 6 7 8
2:x
ans = 1×4
2 3 4 5
  1 Comment
Carsten
Carsten on 23 Mar 2023
Thank you very much. Still getting used to MATLAB and its behaviour. Similar function worked fine on a previous calculation, though i did not have a loop set to run to a variable end point, which seemed to be the issue here when said variable is a vector.
Issue was successfully resolved using a second for loop to read points of the vector, process with the above loop and then feed back into the solution vector.

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!