Can someone explain this please?

9 vues (au cours des 30 derniers jours)
matmat lab
matmat lab le 6 Nov 2016
Commenté : matmat lab le 6 Nov 2016
I know this is from the function perms but i dont understand how it works. from this part onwards:
q = permsr(1:n-1); % recursive calls
m = size(q,1);
P = zeros(n*m,n);
P(1:m,:) = [n*ones(m,1) q];
for i = n-1:-1:1,
t = q;
t(t == i) = n;
P((n-i)*m+1:(n-i+1)*m,:) = [i*ones(m,1) t]; % assign the next m
% rows in P.
end
P = V(P);
end
  2 commentaires
Jan
Jan le 6 Nov 2016
Modifié(e) : Jan le 6 Nov 2016
As long as neither "permsr" nor "n" is defined, wild guessing is required to answer your question. Please post the complete code and ask a specific question. How much time should I spend to explain the meaning of "m = size(q,1)" or do I have to explain the zeros command?
matmat lab
matmat lab le 6 Nov 2016
function P = permsr(V)
% subfunction to help with recursion
V = V(:).'; % Make sure V is a row vector
n = length(V);
if n <= 1
P = V;
return;
end
q = permsr(1:n-1); % recursive calls
m = size(q,1);
P = zeros(n*m,n);
P(1:m,:) = [n*ones(m,1) q];
for i = n-1:-1:1,
t = q;
t(t == i) = n;
P((n-i)*m+1:(n-i+1)*m,:) = [i*ones(m,1) t]; % assign the next m
% rows in P.
end
P = V(P);
end
This is the full code but i dont get why is there the [n*ones(m,1) q] and like the purpose of t and q and P((n-i)*m+1:(n-i+1)*m,:) = [i*ones(m,1) t] Basically i dont understand what it is doing

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur App Building dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by