Expand 1-D array to 2-D matrix using 'ones' function and colon ':'
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Example:
matrixA = 6:10;
matrixA = matrixA(ones(1,5), :);
or:
matrixB = (6:10)';
matrixB = matrixB(:, ones(1,5));
My Question:
What's going on here? I just don't get it. Is there any reference on this "exotic" usage? Many thanks for any inputs!
0 comentarios
Respuesta aceptada
Daniel Shub
el 5 de Sept. de 2011
It is not that crazy. It is basically
matrixA = 6:10;
for ii = 1:5
for jj = 1:5
temp(ii, jj) = matrixA(1, jj);
end
end
matrixA = temp;
but lump together into a vectorized version. You can get rid of the inner loop with:
matrixA = 6:10;
for ii = 1:5
temp(ii, :) = matrixA(1, :);
end
matrixA = temp;
and you can finally get rid of all loops with
matrixA = 6:10;
temp = matrixA(ones(1,5), :);
matrixA = temp;
0 comentarios
Más respuestas (2)
Oleg Komarov
el 5 de Sept. de 2011
matrixA = matrixA(ones(1,5), :)
select all elements from row one 5 times.
matrixB = matrixB(:, ones(1,5));
select all elements from column one 5 times.
0 comentarios
Ver también
Categorías
Más información sobre Whos 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!