Function only computing first element of array used as input

1 visualizzazione (ultimi 30 giorni)
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

Risposta accettata

Cris LaPierre
Cris LaPierre il 23 Mar 2023
Spostato: Cris LaPierre il 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 Commento
Carsten
Carsten il 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.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by