Create a matrix from a row vector according to specifications
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Nishant
el 30 de Mayo de 2014
Editada: Andrei Bobrov
el 30 de Mayo de 2014
I am working in matlab. I have a row vector in and a scalar number fuzzy_no. I want to create a matrix output of size fuzzy_no times (numel(in)-fuzzy_no). such that the ith col of the matrix output has the elements from i:i+fuzzy_no-1 of row vector in.
In other words I want to implement the following loop without using loops
n = numel(in);
output = zeros(fuzzy_no,n-fuzzy_no);
for i = 1:size(output,2)
output(:,i) = in(1,i:i+fuzzy_no-1);
end
0 comentarios
Respuesta aceptada
Andrei Bobrov
el 30 de Mayo de 2014
Editada: Andrei Bobrov
el 30 de Mayo de 2014
output = hankel(in(1:n-fuzzy_no),in(n-fuzzy_no:end-1))';
or
output = in(bsxfun(@plus,1:n-fuzzy_no,(0:fuzzy_no-1)'));
Más respuestas (0)
Ver también
Categorías
Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!