How to handle unknown output arguments in arrayfun?

5 次查看(过去 30 天)
Arrayfun can handle to a function that accepts n input arguments and returns m output arguments. But what if we dont know m? If m depends on the input? For example length of the output randperm(n) is n. How to make a matrix nxk in which each column is a different permutation of 1..n?

采纳的回答

Matt J
Matt J 2017-5-20
编辑:Matt J 2017-5-21
You always know "m". It is determined by the number of output arguments you call the function with.
For example length of the output randperm(n) is n. How to make a matrix nxk in which each column is a different permutation of 1..n?
This is a different question. You would do
n=4;k=3;
outCell=arrayfun(@(p) randperm(n).', 1:k,'uni',0);
matrix=[outCell{:}],
but note that for each p=1,...k, the function randperm is being called with just a single output argument. In other words, m is known and is equal to 1.

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by