function [A1, A2,..............., Am ]=Level[A,m]

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:

Answers (1)

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.

Commented:

on 17 Aug 2018

Community Treasure Hunt

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

Start Hunting!