How to handle unknown output arguments in arrayfun?

1 vue (au cours des 30 derniers jours)
Mr M.
Mr M. le 20 Mai 2017
Modifié(e) : Matt J le 21 Mai 2017
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?

Réponse acceptée

Matt J
Matt J le 20 Mai 2017
Modifié(e) : Matt J le 21 Mai 2017
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.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by