필터 지우기
필터 지우기

How to Make a function accept vector inputs

조회 수: 8 (최근 30일)
Chuzymatics Chuzymatics
Chuzymatics Chuzymatics 2013년 12월 21일
댓글: Walter Roberson 2017년 3월 29일
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
Ben
Ben 2017년 3월 29일
sum(t.^n/(gamma(n + 1))) needs to have a . before the /
Walter Roberson
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
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

추가 답변 (2개)

Walter Roberson
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
Walter Roberson 2013년 12월 21일
Right, sorry,
for n = 0 : 9
Ml(n+1,:) = sum(t.^n/(gamma(n + 1)));
end
Chuzymatics Chuzymatics
Chuzymatics Chuzymatics 2013년 12월 22일
I am proud to belong to this community; you all are legends. Many thanks

댓글을 달려면 로그인하십시오.


Image Analyst
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
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.
Youssef  Khmou
Youssef Khmou 2013년 12월 23일
ok

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by