How do i multiply 2 increasing variables
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Ilker Enes Çirkin
le 14 Août 2020
Commenté : Shae Morgan
le 14 Août 2020
Hello everyone i was wondering if u could help me multiply these two increasing variables. They just do not multiply correctly
v0 = (10:1:20);
theta = (30:1:40);
v0_x = v0.*cosd(theta);
v0_y = v0.*sind(theta);
6 commentaires
Sara Boznik
le 14 Août 2020
for v0 = 10:1:20;
for theta = 30:1:40;
v0_x = v0.*cosd(theta)
v0_y = v0.*sind(theta)
end
end
Do you need this?
Réponse acceptée
Shae Morgan
le 14 Août 2020
Modifié(e) : Shae Morgan
le 14 Août 2020
Is this more what you were looking for?
v0 = (10:1:20);
theta = (30:1:40);
for i= 1:length(v0)
for j = 1:length(theta)
v0_x(i,j)=v0(i)*cosd(theta(j));
v0_y(i,j)=v0(i)*sind(theta(j));
end
end
v0_x
v0_y
4 commentaires
Shae Morgan
le 14 Août 2020
meshgrid() is another great solution here
x=[1 2 3]; %x array
y=[3 2 1]; %y array
[X,Y]=meshgrid(x,y)
%X is a length(y) long set rows of x
%Y is a length(x) long set of columns of y
using these matrices with the point multiplication will give the same outcome. The for-loops feel more intuitive and are visually understandable as you read through the code, but meshgrid requires fewer lines and a little more understanding of what it's doing.
In the end it's preference. I prefer code readability (or familiarizing yourself with new functions so you can improve readability!)
Plus de réponses (1)
Bruno Luong
le 14 Août 2020
Modifié(e) : Bruno Luong
le 14 Août 2020
v0 = (10:1:20);
theta = (30:1:40);
v0_x = v0.*cosd(theta.'); % horizontal .* vertical vectors
v0_y = v0.*sind(theta.');
0 commentaires
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!