Skriva om uttryck för vektorer till funktion i Matlab?
Hej,
Jag har en vektor A = (A1, A2, A3) som är ortogonal mot en annan vektor, v = (v1,v2,v3), med längden 1 och vars första koordinat är 0. Jag har lyckats skriva in detta i Matlab på följande sätt:
v2 = [0 A(2) -A(3)];
v3 = [0 -A(2) A(3)];
v2 = v2/norm(v2)
v3 = v3/norm(v3)
Men om jag vill skriva om det som en funktion istället, där A är input värde, hur gör jag då? Jag är med på att funktioner skrivs in som function[v2,v3] = Namn(A3,A2) men hur gör jag det om på ovan uppgift där funktionen inte är given?
Jag önskar inte svaret på uppgiften, utan mer en ledtråd hur jag ska tänka.
Flyttar tråden från Matematik/Universitet till Programmering/MatLab /moderator
Om du klipper in raden
function [v2,v3] = orthogonal_vectors(A)
före din kod och sedan ett "end" på slutet, så tar funktionen orthogonal_vectors(A) en vektor A och returnerar två vektorer v2 och v3, som är normerade, har förstakoordinat = 0 och är vinkelräta mot A.
Dr. G skrev:Om du klipper in raden
function [v2,v3] = orthogonal_vectors(A)
före din kod och sedan ett "end" på slutet, så tar funktionen orthogonal_vectors(A) en vektor A och returnerar två vektorer v2 och v3, som är normerade, har förstakoordinat = 0 och är vinkelräta mot A.
Tack! Det verkar fungera nu, men problemet är bara att programmet vill att jag ska ange värden för A när jag trycker "Run", Please enter a vector A=[A1 A2 A3]: Ska jag inte bara i command window kunna skriva in t.ex [v2,v3] = orthogonal_vectors(1) ? (alltså ange ett värde på A)
A som argument i funktionen ska vara en vektor med längd 3.