How do i multiply 2 increasing variables
    7 ビュー (過去 30 日間)
  
       古いコメントを表示
    
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 件のコメント
  Sara Boznik
      
 2020 年 8 月 14 日
				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?
採用された回答
  Shae Morgan
      
 2020 年 8 月 14 日
        
      編集済み: Shae Morgan
      
 2020 年 8 月 14 日
  
      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 件のコメント
  Shae Morgan
      
 2020 年 8 月 14 日
				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!)
その他の回答 (1 件)
  Bruno Luong
      
      
 2020 年 8 月 14 日
        
      編集済み: Bruno Luong
      
      
 2020 年 8 月 14 日
  
      v0 = (10:1:20);
theta = (30:1:40);
v0_x = v0.*cosd(theta.'); % horizontal .* vertical vectors
v0_y = v0.*sind(theta.');
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!






