Getting multiple outputs from a function?

조회 수: 2 (최근 30일)
isa karaca
isa karaca 2019년 3월 31일
댓글: Guillaume 2019년 3월 31일
Hi everyone. This is my code. It works well in this state but i want to change ''ord'' number from 1 to 4 and ''sfn'' number from 1 to ord+1. For example, when ord=3, sfn values should be 1, 2, 3 and 4, accordingly. How can i do this?
% shapefun( ord,sfn,x ) function gives the value of the 'sfn'th shape function of
% element with order 'order' at x coordinate.
% 'order' can be any integer above 0
% x € [-1,1]
% sfn is integers from 1 up to (order+1),
function result = shapefun(ord,sfn,x)
result=1;
if nargin==0
ord = 1;
sfn = 1;
x = linspace(-1,1,1000);
end
for i = 1:ord+1
if(i==sfn)
result = result.*1;
else
result = result.*(x-((i-1).*1./ord))./(((sfn-1).*1./ord)-((i-1).*1./ord));
end
end
end
  댓글 수: 1
Guillaume
Guillaume 2019년 3월 31일
Your code:
if(i==sfn)
result = result.*1;
Last I checked, multiplying by 1 doesn't do much. What is the point of that?

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

답변 (1개)

Anish Navalgund
Anish Navalgund 2019년 3월 31일
Hi Isa,
You can use switch statements to control your order and for each order you can have for loops to calculate for each sfn.
The psuedo code is below.
order = input('order= ');
switch order
case 1
for sfn = 1:2
result = shapefun(ord,sfn,x);
end
case 2
for sfn = 1:3
result = shapefun(ord,sfn,x);
end
end
And so on...
Hope this helps.
  댓글 수: 6
Stephen23
Stephen23 2019년 3월 31일
편집: Stephen23 2019년 3월 31일
"...my result matrix is being one row not two, i mean function take sfn as only 2 not both 1 and 2. Can you help about this case?"
Most likely you will need to use indexing on the output array, otherwise you simply discard the results of every iteration except for the last one. I say "most likely" as I do not understand your algorithm.
Anish Navalgund
Anish Navalgund 2019년 3월 31일
@Isa, like @Stephen said you can use his method as the repetition of calling of the function is reduced. :)

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

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by