How to Make a function accept vector inputs
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Chuzymatics Chuzymatics
am 21 Dez. 2013
Kommentiert: Walter Roberson
am 29 Mär. 2017
function Ml = myseries(t)
n=0;
while (n<10)
Ml = sum(t.^n/(gamma(n + 1)));
n = n+1;
end
The above code runs well as long as the input variable is a scalar; for vectorized inputs, it fails. What might be wrong?
4 Kommentare
Walter Roberson
am 29 Mär. 2017
./ would only be needed if the right hand side, gamma(n+1) was a vector or matrix, but in this context it is a scalar.
Akzeptierte Antwort
Youssef Khmou
am 21 Dez. 2013
You did not specify how the output should be , 1x1 or Nx1 , you can try this way :
function Ml = myseries(t)
n=0;
ctr=1;
while (n<10)
Ml(ctr) = sum(t.^n/(gamma(n + 1)));
n = n+1;
ctr=ctr+1;
end
0 Kommentare
Weitere Antworten (2)
Walter Roberson
am 21 Dez. 2013
Your current code overwrites all of Ml each time through the "while" loop, and so is unlikely to be doing what you want.
for n = 0 : 9
Ml(n,:) = sum(t.^n/(gamma(n + 1)));
end
4 Kommentare
Walter Roberson
am 21 Dez. 2013
Right, sorry,
for n = 0 : 9
Ml(n+1,:) = sum(t.^n/(gamma(n + 1)));
end
Image Analyst
am 21 Dez. 2013
Bearbeitet: Image Analyst
am 21 Dez. 2013
I think you can to what you want to do with one of these functions. Not sure what you want to do so pick one:
function theSum = myseries(t)
% Vectorized method.
n = 1:length(t);
theSum = sum(t.^n ./ (gamma(n + 1)));
function theSum = myseries(t)
% For loop method.
theSum = 0;
for n = 1 : length(t)
theSum = theSum + t(n)^n ./ gamma(n + 1);
end
This does something completely different than the other two answers but I think is what you were actually intending, which is trying to sum a series.
5 Kommentare
Image Analyst
am 23 Dez. 2013
Well he accepted your interpretation so I guess you were right. The Ml(2) was the sum of terms 1 and 2, the Ml(3) was the sum of terms 1, 2, and 3, and the element Ml(N) was term1 + term2 + term3 + term4 +....+termN. I thought he wanted just one sum - the sum of terms 1 through term N - not N sums, but I guess I was wrong.
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!