Can someone explain this please?

11 visualizaciones (últimos 30 días)
matmat lab
matmat lab el 6 de Nov. de 2016
Comentada: matmat lab el 6 de Nov. de 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 comentarios
Jan
Jan el 6 de Nov. de 2016
Editada: Jan el 6 de Nov. de 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 el 6 de Nov. de 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

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre App Building en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by