I would like to write a for loop to store all values of y when A=1,2,3,4,5. into a variable y1,y2,y3,y4,y5 respectively. Any help will be greatly appreciated. Thanks

1 visualización (últimos 30 días)
x = -3:0.1:3;
for A = 1:1:5
y = A*sin(x);
end
plot(x,y)

Respuesta aceptada

James Tursa
James Tursa el 23 de Mayo de 2022
Editada: James Tursa el 23 de Mayo de 2022
No loop needed, and no need to create multiple variables to hold results. Just use implicit array expansion and hold results in a 2D matrix. E.g.,
x = -3:0.1:3; % row vector
A = (1:1:5)'; % column vector
y = A.*sin(x); % implicit array expansion used here, matrix = column .* row
plot(x,y)
  5 comentarios
James Tursa
James Tursa el 23 de Mayo de 2022
Editada: James Tursa el 23 de Mayo de 2022
If the variables will have different sizes, then I would suggest you first look into cell arrays. They are built using the curly braces { }. E.g., maybe something like this would work for your purpose:
A = 1:1:5;
for k=1:numel(A)
y{k} = A(k)*sin(x);
end
Then downstream in your code you use y{1}, y{2}, etc. instead of y1, y2, etc.
So you can still use indexing in your code, and the individual cell elements y{1}, y{2}, etc. can be completely different sizes. This method is also discussed in the link I posted above.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrix Indexing 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