How do i multiply 2 increasing variables

1 visualizzazione (ultimi 30 giorni)
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
KSSV
KSSV il 14 Ago 2020
To get this you need to use symbolic tool box.
Sara Boznik
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?

Accedi per commentare.

Risposta accettata

Shae Morgan
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
Ilker Enes Çirkin
Ilker Enes Çirkin il 14 Ago 2020
i am not familiar with meshgrid
Shae Morgan
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!)

Accedi per commentare.

Più risposte (1)

Bruno Luong
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.');

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by