Convert a vector to vector sequentially?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Nguyen Trong Nhan
el 3 de En. de 2020
Respondida: Walter Roberson
el 3 de En. de 2020
I have 2 vector: init = [1 2 3 4], final =[5 6 7 8]. I would like to genertate all the vector like the following:
[1 2 3 4] [5 2 3 4] [5 6 3 4] [5 6 7 4] [5 6 7 8]. Is there anyway to do this fast using some special function available in matlab?
0 comentarios
Respuesta aceptada
Walter Roberson
el 3 de En. de 2020
%assuming init and final are the same size!!
init = [1 2 3 4];
final =[5 6 7 8];
output = repmat(init(:), 1, length(init));
toutput = repmat(final(:), 1, length(init));
mask = triu(true(size(output)),1);
output(mask) = toutput(mask);
And now the outputs are down the columns. If you really want vectors,
num2cell(output,1)
0 comentarios
Más respuestas (1)
Stephen23
el 3 de En. de 2020
>> init = [1 2 3 4]
>> final = [5 6 7 8]
>> X = triu(ones(5,4));
>> M = init.*X + final.*~X
M =
1 2 3 4
5 2 3 4
5 6 3 4
5 6 7 4
5 6 7 8
0 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!