Filling up a vector

15 visualizaciones (últimos 30 días)
alpedhuez
alpedhuez el 27 de Mzo. de 2018
Comentada: Stephen23 el 2 de Abr. de 2018
Suppose I have 1 by 2N vector
x=zeros(1,2*N);
Now I have N of 1 by 2 vector
y1=ones(1,2), y2=ones(1,2)
and I want to fill x as
[y1 y2 ...]
what will be a compact way to fill x in this way (instead of concatenation)?
  1 comentario
Stephen23
Stephen23 el 2 de Abr. de 2018
Do NOT do this! The MATLAB documentation specifically advises against what you are trying to do: "A frequent use of the eval function is to create sets of variables such as A1, A2, ..., An, but this approach does not use the array processing power of MATLAB and is not recommended. The preferred method is to store related data in a single array"
Read this to know more:

Iniciar sesión para comentar.

Respuestas (1)

Walter Roberson
Walter Roberson el 27 de Mzo. de 2018
x(1:2:end) = y1;
x(2:2:end) = y2;
or
x = reshape([y1; y2], 1, []); %requires that y1 and y2 be row vectors
or
x = reshape([y1(:), y2(:)].', 1, []); %does not requires that they be row vectors
  3 comentarios
Walter Roberson
Walter Roberson el 28 de Mzo. de 2018
Editada: Walter Roberson el 28 de Mzo. de 2018

http://www.mathworks.com/matlabcentral/answers/304528-tutorial-why-variables-should-not-be-named-dynamically-eval

Though I see now that I misinterpreted your question -- I thought you wanted alternating elements, but instead you were looking for dynamic variable names.

alpedhuez
alpedhuez el 28 de Mzo. de 2018
Let me think about it and phrase questions in a clearer way. Thank you.

Iniciar sesión para comentar.

Categorías

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

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by