How to get a one function result?

조회 수: 2 (최근 30일)
Akash Pal
Akash Pal 2022년 5월 6일
댓글: Walter Roberson 2022년 5월 9일
I have a main function called mainfun
function [out1,out2]=mainfun(input)
[out1]=fun1(input);
[out2]=fun2(input);
end
so my question is ,may be i am calling my mainfun,and I want to display the individual result from different sub function,but how to display if there is any error in one subfunction ?
like an example ,
if in my fun1 there is eroor then also i want to get the fun2 result .

채택된 답변

Walter Roberson
Walter Roberson 2022년 5월 9일
You can create a helper function
function varargout = safe(fcn, varargin)
try
[varargout{}] = fcn(varargin{:}) ;
catch ME:
varargout(:) = {nan};
end
With that you can
[out1] = safe(@fun1,input);
[out2] = safe(@fun2,input);
  댓글 수: 4
Akash Pal
Akash Pal 2022년 5월 9일
[F1,M1,deobj1a,bb1,deobj2a,Xa,Coap,Co1ap,combap,obj1ap,obj2ap,comb1ap,comb3ap,comb4ap,comb5ap,comb6ap,comb12ae,obj11ae,obj22ae,comb11ae,comb22ae,comb33ae,comb44ae,comb55ae,comb66ae,t1a,t2a,t4a,t3a,t5a]=safe(@Together2,C,Dij,i,j,Fj,Uij,DQij)
Output argument "varargout{2}" (and maybe others) not assigned during call to "safe".
First i made one extra function called safe ,as guided by you .then i am just calling my subfunction .but its showing this kind or output.
Walter Roberson
Walter Roberson 2022년 5월 9일
function varargout = safe(fcn, varargin)
try
[varargout{1:nargout}] = fcn(varargin{:}) ;
catch ME:
varargout(1:nargout) = {nan};
end

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

추가 답변 (1개)

David Hill
David Hill 2022년 5월 6일
function [out1,out2]=mainfun(input)
out1=nan;out2=nan;
try [out1]=fun1(input);
end
try [out2]=fun2(input);
end
  댓글 수: 2
Akash Pal
Akash Pal 2022년 5월 9일
i tried the ..Its helpfull ,incase of lots of output in the both sub function that time what to do ?should i write also
out1=nan;out2=nan ; for every individual output ?
Walter Roberson
Walter Roberson 2022년 5월 9일
You should initialize any output variable that might otherwise not be assigned to because of errors.

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

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by