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 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Rufus Adjetey
il 23 Mag 2022
Commentato: Rufus Adjetey
il 23 Mag 2022
x = -3:0.1:3;
for A = 1:1:5
y = A*sin(x);
end
plot(x,y)
0 Commenti
Risposta accettata
James Tursa
il 23 Mag 2022
Modificato: James Tursa
il 23 Mag 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 Commenti
James Tursa
il 23 Mag 2022
Modificato: James Tursa
il 23 Mag 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.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Matrix Indexing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!