substituting multiple values in symbolic formula?
    4 次查看(过去 30 天)
  
       显示 更早的评论
    
I have this symbolic formula that is a variable of theta and phi, and I want to substitute the theta and phi with the following values in the following formula:
if true
  % code
end
theta = -pi/2:pi/180:pi/2;
phi   = -pi:pi/180:pi; 
U = abs(sin(pi*cos(phi)*sin(theta))*sin(pi*sin(phi)*sin(theta)))^2/(abs(sin((pi*cos(phi)*sin(theta))/2))^2*abs(sin((pi*sin(phi)*sin(theta))/2))^2);
2 个评论
  Ameer Hamza
      
      
 2018-6-30
				theta and phi have different lengths. For substitution, they must have equal lengths.
采纳的回答
  Walter Roberson
      
      
 2018-6-30
        First create the symbolic formula. Next create your vectors of values but give them a different name than the variables in the formula. Then use ndgrid to create a grid of values for the two variables and use different variable names still. Finally,
Output = subs(U, {theta, phi}, {thetaGrid, phiGrid}) ;
There is another possibility that does not require creating the grid but it involves two subs calls and being careful about row and column vectors.
5 个评论
  Walter Roberson
      
      
 2018-6-30
				
      编辑:Walter Roberson
      
      
 2018-6-30
  
			1) First create the symbolic formula.
syms theta phi real
Psi_x    = k*dx*sin(theta)*cos(phi) + Beta_x;
Psi_y    = k*dy*sin(theta)*sin(phi) + Beta_y;
AF_Field = (sin(Nx*Psi_x/2)/(sin(Psi_x/2)))*...
           (sin(Ny*Psi_y/2)/(sin(Psi_y/2)));
U        = abs((fi*AF_Field)).^2;
2) Next create your vectors of values but give them a different name than the variables in the formula.
Theta    = -pi/2:pi/180:pi/2;       % Elevation Angle (radian)
Phi      = -pi:pi/180:pi;           % Azimuth Angle   (radian)
3) Then use ndgrid to create a grid of values for the two variables and use different variable names still.
[thetaGrid, phiGrid] = ndgrid(Theta, Phi);
4) Finally,
Output = subs(U, {theta, phi}, {thetaGrid, phiGrid}) ;
更多回答(0 个)
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Linear Algebra 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


