function [A1, A2,..............., Am ]=Level[A,m]
6 ビュー (過去 30 日間)
古いコメントを表示
how do I declare the outputs of a function that has as outputs different size arrays and whose input is the main array and the number of output arrays as follows:
1 件のコメント
Stephen23
2018 年 8 月 17 日
Perhaps varargout does what you want. Although this is unlikely to be a good design decision.
回答 (1 件)
Image Analyst
2018 年 8 月 17 日
You don't do that (or else you will earn the wrath of Stephen). Not sure why many beginners want to do that. I guess they just aren't thinking ahead.
You return one variable that is a cell array that has a variable number of cells, not a variable number of uniquely-named variables:
function cellArrayA = Level(A,m)
and use parentheses rather than square brackets.
On the other hand, there are functions that return variable numbers of outputs but (I think) that they generally return them all, not a variable number of them. Then it's up to the calling routine to accept the ones you want. For example, the max() function:
maxValue = max(data); % Accepts 1 output value.
[maxValue, indexOfMax] = max(data) ; % Accepts two output values.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!