How do i multiply 2 increasing variables
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Ilker Enes Çirkin
il 14 Ago 2020
Commentato: Shae Morgan
il 14 Ago 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 Commenti
Sara Boznik
il 14 Ago 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?
Risposta accettata
Shae Morgan
il 14 Ago 2020
Modificato: Shae Morgan
il 14 Ago 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 Commenti
Shae Morgan
il 14 Ago 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!)
Più risposte (1)
Bruno Luong
il 14 Ago 2020
Modificato: Bruno Luong
il 14 Ago 2020
v0 = (10:1:20);
theta = (30:1:40);
v0_x = v0.*cosd(theta.'); % horizontal .* vertical vectors
v0_y = v0.*sind(theta.');
0 Commenti
Vedere anche
Categorie
Scopri di più su Logical 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!