Borrar filtros
Borrar filtros

How to create vectors in the for loop

2 visualizaciones (últimos 30 días)
Yerzhigit Bapin
Yerzhigit Bapin el 13 de Jul. de 2017
Editada: Andrei Bobrov el 14 de Jul. de 2017
I have a hard time understanding the logic behind the for loops, so here is the question:
I have a vector:
A = [5 8 1 4 9 2];
for each value of A, I need to create other vectors in the format B = linspace(-A,A,47), so the output looks as follows:
B(1) = -5 -4.78 -4.56 ... 4.56 4.78 5
B(2) = -8 -7.65 - 7.3 ... 7.3 7.65 8
.
.
.
B(6) = -2 -1.91 -1.83 ... 1.83 1.91 2
Thank you!

Respuesta aceptada

Elias Gule
Elias Gule el 13 de Jul. de 2017
Try this.
B = arrayfun(@(x) linspace(-x,x,47),A,'uni',false); % B is a cell array of vectors
Using a for loop:
len = length(A);
B = cell(len,1);
for index = 1 : len
B{index} = linspace(-A(index),A(index),47);
end
  1 comentario
Yerzhigit Bapin
Yerzhigit Bapin el 14 de Jul. de 2017
Thanks, this works, but is there a way to do it in a matrix rather than cell? I guess nested for loop will be required for that?

Iniciar sesión para comentar.

Más respuestas (1)

Andrei Bobrov
Andrei Bobrov el 13 de Jul. de 2017
Editada: Andrei Bobrov el 14 de Jul. de 2017
n = 47;
nn = n - 1;
B = A(:)*2/nn*(0:nn) - A(:); % R2016b or later
B = bsxfun(@minus,A(:)*2/nn*(0:nn),A(:)); % R2016a or earlier

Categorías

Más información sobre Loops and Conditional Statements 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