Ich habe einen Code, der tatsächlich funktioniert, aber der Ausgang sollte zusammen multipliziert werden. Außerdem war die Ausführungszeit nicht in Millisekunden. Dies ist der Matlab-CodeMATLAB: Das Produkt von Produkten mit Ausführungszeit in Millisekunden
function product = prod(A)
tic;
A=input('matrix A =');
[rows, columns] = size(A);
for i=1:rows
prod=A(i,i)*A(i,end)
end
seconds=toc
Zum Beispiel A=[1,2,3;4,5,6;7,8,9]
wenn gegeben, wenn i=1
wir 1*3=3
haben, wenn wir i=2
2*6=12
haben, wenn wir i=3
9*9=81
haben. Der Ausgang I sollte 3*12*81=2916
(das Produkt der Werte oben) sein soll, und die Zeit der Ausführung sollte Millisekunden betragen.
Wenn ich erweitern die Lösung, die Sie unten für den Code kredenzen, ist es ihnen nicht miteinander zu multiplizieren und die verstrichene Zeit scheint, große
Wenn der obige Code für die matrix A = [2,3,6,4;2,1,7,-2;6,8,1,-3;5,3,4,1]
früher.
Meine Ausgabe ist
out = -22, -23, -7, -3
Elapsed time is 10.200446 seconds.
ich mehrere einander alle ausgegeben werden soll, so dass es
out = -22*-23*-7*-3 = 10626
Willkommen zu SO. Also, was ist das Problem? Welche Ausführungszeit erhalten Sie und warum sollte sie in Millisekunden sein? 'prod = A (i, i) * A (i, end)' wird in jeder Iteration der 'for'-Schleife überschrieben. Sie müssen vielmehr Ihre Schleife mit 'prod initialisieren = 1 'und die haben' prod = prod * A (i, i) * A (i, end) '. Es gibt möglicherweise einen noch effizienteren Weg, um Ihre Berechnungen durchzuführen. ;) –
es scheint, dass das zweite Element 5 * 6 sein sollte, und nicht 2 * 6, bin ich richtig? – drorco
Nur als ein Wort der Warnung, erstellen Sie nie eine Funktion mit dem gleichen Namen wie eine integrierte MATLAB-Funktion. Solange sich diese Funktion 'prod' in Ihrem aktuellen Pfad befindet, funktioniert [' prod'] (http://www.mathworks.com/help/matlab/ref/prod.html) nicht richtig. Außerdem geben Sie den Wert der Multiplikation an 'prod', der dann den Funktionsnamen überschreibt. Ich nehme an, Sie wollten die Ergebnisse Ihrem Rückgabewert 'Produkt' zuordnen. – beaker