Help with function main and writing cross product function
    16 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
    CalamityGoat
 le 27 Avr 2015
  
    
    
    
    
    Commenté : CalamityGoat
 le 27 Avr 2015
            So I am trying to write a function to calculate the cross product of any two vectors. I am trying to write the code to work with some test vectors I have defined both vectors as 2 dimensional for my test but in eventuality I will want the code to accept either 2 dimensional or 3 dimensional vectors. So far I have:
function main
%  vectors a = 3i + 11j; b = 14i - 7.3j;
a = [3 11]; b = [14 -7.3];
vec_c = crosspro(a, b)
end
function w = crosspro(u, v)
%  crosspro calculates the crossproduct of u cross v
    if length(u) == 2
      u = [u 0 ];
    end
    if length(v) == 2
      v = [v 0 ];
    end
i = (u(2)*v(3)-u(3)*v(2));
j = (u(3)*v(1)-u(1)*v(3));
k = (u(1)*v(2)-u(2)*v(1));
result=[i j k];
end
I get an error if length(u) == 2, I was given them as a hint based on the code I had previously. Also it says output "w" (and maybe others) are not assigned during call main>crosspro.
Can someone help explain what is going on here and also how to fix my code to work from here? Thanks a bunch!
0 commentaires
Réponse acceptée
  Michael Haderlein
      
 le 27 Avr 2015
        You have to decide if you want to name the output argument "w" or "result". If you change your second last line to
w=[i j k];
things will work. Just as a comment, if you want to make sure that also column vectors work, replace
u=[u 0];
with
u(3)=0;
The same with v of course. Also, I guess this is for educational purpose only - you know the function "cross", don't you?
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Logical dans Help Center et File Exchange
			
	Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

