How to Make a function accept vector inputs
조회 수: 8 (최근 30일)
이전 댓글 표시
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
Walter Roberson
2017년 3월 29일
./ 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.
채택된 답변
Youssef Khmou
2013년 12월 21일
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
추가 답변 (2개)
Walter Roberson
2013년 12월 21일
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
Walter Roberson
2013년 12월 21일
Right, sorry,
for n = 0 : 9
Ml(n+1,:) = sum(t.^n/(gamma(n + 1)));
end
Image Analyst
2013년 12월 21일
편집: Image Analyst
2013년 12월 21일
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
Image Analyst
2013년 12월 23일
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.
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!