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 ExchangeMatrix 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