substituting multiple values in symbolic formula?
    5 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Sharif Khalil
 il 29 Giu 2018
  
    
    
    
    
    Modificato: Walter Roberson
      
      
 il 30 Giu 2018
            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 Commenti
  Ameer Hamza
      
      
 il 30 Giu 2018
				theta and phi have different lengths. For substitution, they must have equal lengths.
Risposta accettata
  Walter Roberson
      
      
 il 30 Giu 2018
        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 Commenti
  Walter Roberson
      
      
 il 30 Giu 2018
				
      Modificato: Walter Roberson
      
      
 il 30 Giu 2018
  
			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}) ;
Più risposte (0)
Vedere anche
Categorie
				Scopri di più su Linear Algebra 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!