2016-12-02 8 views
1

Ich habe eine folgende Formel:in Matlab

und ich brauche es es in Matlab neu zu schreiben. Das Problem ist, ich bin nicht sehr erfahren, also bin ich mir nicht sicher, ob dies der richtige Weg ist.

Mein Code sieht wie folgt aus:

f = @(alpha, beta, gamma, delta)... 
     alpha*sum((DOF.^(2*beta)) .* log(DOF))... 
     + gamma*sum((DOF.^(beta+delta) .* log(DOF))./nprocs) 

DOF und nprocs sind Vektoren von Zahlen mit n Elementen.

Ist es in Ordnung oder gibt es einen Fehler in meinem Code? Ich bin nicht sicher über die Summe der i-ten Mitglieder, ich bin ziemlich verwirrt von diesen Vektor-Multiplikationen usw.

+0

Gibt es irgendetwas, was Sie dazu bringt, dass Ihr Code nicht in Ordnung ist? –

+0

@AnderBiguri Es gibt, ich versuche, einen Fehler in meinem Code zu finden, und ich war verdächtig, dass ich einige Funktionen falsch geschrieben habe. Ich werde über das ganze Problem in der anderen Frage fragen. – Eenoku

Antwort

0

Ihr Code sieht gut aus.

Sie brauchen nicht .^ - man muss nur ^ verwenden können, vorausgesetzt beta,delta etc Skalar sind.

Ich sollte erwähnen, dass die Variable DOF und nprocs kann als eine "Schließung" behandelt werden - d. H. Wird aus dem Bereich aufgenommen werden, in dem die Funktion definiert ist. Wenn Sie dies vermeiden möchten, sollten DOF und nprocs als Parameter angegeben werden.