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!