Can someone explain this please?

11 visualizzazioni (ultimi 30 giorni)
matmat lab
matmat lab il 6 Nov 2016
Commentato: matmat lab il 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 Commenti
Jan
Jan il 6 Nov 2016
Modificato: Jan il 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 il 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

Accedi per commentare.

Risposte (0)

Categorie

Scopri di più su App Building in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by