I have created functions (say func1 and func2) with this format (each of which was written in a separate file)
----------------------------------------
function [a,b]=func1
a=[1,1];
b=[0,0,0];
end
------------------------------------------
function [a,b]=func2
a=[5,5];
b=[1,1,0];
end
-------------------------------------
A statement like
[c,d]=func1;
works. However, it doesn't work when it is written in another function (call it mainfunc) which has func1 or func2 as arguments, i.e. briefly something like
mainfunc(x)
[c,d]=x;
where x is one of the functions func1 and func2.
Are there any suggestions to overcome this problem?

 채택된 답변

Walter Roberson
Walter Roberson 2018년 8월 24일

0 개 추천

If you have
function [c, d] = mainfunc(x)
where x is being passed in as @func1 or @func2, then you would use
[c, d] = x();
With what you had, you were trying to return the function handle, rather than trying to return the result of invoking the function handle.

댓글 수: 1

ahmad
ahmad 2018년 8월 24일
thank you so much! it solves the problem

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

질문:

2018년 8월 24일

댓글:

2018년 8월 24일

Community Treasure Hunt

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

Start Hunting!

Translated by