Ich habe zwei Vektoren (A
und B
) mit der Länge N
. Dann muss ich beide multiplizieren, aber als "Integrationsprozess". Was bedeutet, dass ich zuerst A(1)*B(1)
, dann A(1:2)*B(1:2)
, bis A(1:N)*B(1:N)
multiplizieren muss. Das Ergebnis des multiplizierenden Kabinenvektors ist eine Zahl, da B
ein Spaltenvektor ist. Ich habe es mit einer for
Schleife getan:Multiplizieren Sie zwei Vektoren mit entlang der Zeit zunehmenden Dimensionen
for k = 1:N
C(k) = A(1:k) * B(1:k).';
end
Aber ich wollte Dich fragen, ob dies die beste Lösung ist, oder es gibt eine andere Option mehr zeiteffizient, da N
sehr groß (etwa 110,000
)
Es sieht aus wie C = Cumsum (A. * B). Ist das richtig? – Navan
ja, irgendwie. Aber was ich brauche ist, dass, wenn zum Beispiel A = [1 2 3] und B = [1 1 1], das Ergebnis von C C = [1 * 1 1 * 1 + 1 * 2 1 * 1 + 1 sein sollte * 2 + 1 * 3] = [1 3 6]. Wenn Sie das tun, was Sie gesagt haben, bekomme ich eine Matrix N * N, wobei jede Spalte das erwartete Ergebnis ist. Aber wenn ich das tue, werde ich eine riesige Matrix bekommen, da mein N sehr groß ist. – Pep
@ Navan Vorschlag produziert keine NxN-Matrix, es gibt einen Vektor zurück? 'A = [1 2 3]; B = [1 1 1]; C = Cumsum (A. * B) '' zurück 'C = [1 3 6]' wie gewünscht ... Gute Antwort Navan – Wolfie