Autor |
Erzeugen von zwei zufälligen Vektoren und deren Skalarprodukt berechnen |
|
jupiter778
Neu  Dabei seit: 26.04.2017 Mitteilungen: 3
 | Themenstart: 2017-04-26
|
Folgende Aufgabe lautet:
Habe MatLab nicht auf meinen Rechner um damit arbeiten zu können... wer könnte mir bitte bei der Aufgabe helfen?!
Schreiben Sie ein Programm bei dem zwei Vektoren erzeugt werden und anschließend
das Skalarprodukt der beiden Vektoren berechnet wird.
Erzeugen Sie zwei Vektoren (jeweils einzeilige Matrix) mit jeweils 10 zufälligen ganzzahligen Werten.
Geben Sie die beiden Vektoren aus.
Berechnen Sie das Skalarprodukt der beiden Vektoren (das ist die Summe der Komponentenprodukte).
Beispiel:
Sei a = [1, 2, 3] und b = [4, 5, 6], dann berechnet sich das Skalarprodukt aus 1*4 + 2*5 + 3*6 = 32.
Geben Sie das berechnete Skalarprodukt aus.
Programm zur Berechnung des Skalarproduktes zweier Vektoren
% -----------------------------------------------------------
% Anlegen der Vektoren mit zufälligen Werten
% Ausgabe der beiden Vektoren
% Berechnung des Skalarpoduktes
% Ausgabe des Skalarproduktes
|
Profil
|
ligning
Senior  Dabei seit: 07.12.2014 Mitteilungen: 3555
Wohnort: Berlin
 | Beitrag No.1, eingetragen 2017-04-26
|
\quoteon(2017-04-26 22:31 - jupiter778 im Themenstart)
Habe MatLab nicht auf meinen Rechner um damit arbeiten zu können... wer könnte mir bitte bei der Aufgabe helfen?!
\quoteoff
Vorschläge:
1) Besorge dir Matlab (der Vollständigkeit halber)
2) Bearbeite die Aufgabe in der Uni/Schule/wo auch immer du Zugriff auf Matlab hast
3) Finde heraus, wie du dich remote auf einem Rechner in deiner Schule/Uni/... einloggen kannst, auf dem Matlab läuft
4) GNU Octave ist eine freie Matlab-Alternative mit geringfügig erweiterter Syntax und dafür eingeschränktem Funktionsumfang, die aber für die meisten einfachen Zwecke ein vollkommen ausreichender Matlab-Ersatz ist.
Alles besser als die Aufgabe von jemand anderem lösen zu lassen.
|
Profil
|
jupiter778
Neu  Dabei seit: 26.04.2017 Mitteilungen: 3
 | Beitrag No.2, vom Themenstarter, eingetragen 2017-04-27
|
Meine Vermutung
a = randi (666,[1 10],'int 32'); %Zeilenvektor
b = randi (666,[1 10],'int 32'); %Zeilenvektor
S=0; % Variable fuer Skalarprodukt initialisieren
for i=1:10
S=S+A(i)*B(i); %A(i) ist i-te Element von A
end
|
Profil
|
Folgende Antworten hat der Fragensteller vermutlich noch nicht gesehen. Er/sie war noch nicht wieder auf dem Matheplaneten |
ligning
Senior  Dabei seit: 07.12.2014 Mitteilungen: 3555
Wohnort: Berlin
 | Beitrag No.3, eingetragen 2017-04-27
|
Nicht schlecht (aber der Typ heißt int32 ohne Leerzeichen). Kürzer geht das übrigens mit S = sum(A.*B) oder wieso nicht gleich S = A*B.'.
|
Profil
|
Kitaktus
Senior  Dabei seit: 11.09.2008 Mitteilungen: 7234
Wohnort: Niedersachsen
 | Beitrag No.4, eingetragen 2017-04-27
|
Ältere(?) Matlab Versionen kennen den Befehl randi nicht. Hier könnte es so aussehen.
\sourceon Matlab
A=ceil(rand(1,10)*10); % Zufällige Einträge aus 1,...,10
B=ceil(rand(1,10)*10);
S=A*B.' % A*B' funktioniert auch, verhält sich
% aber anders bei komplexen Vektoren
\sourceoff
|
Profil
|
ligning
Senior  Dabei seit: 07.12.2014 Mitteilungen: 3555
Wohnort: Berlin
 | Beitrag No.5, eingetragen 2017-04-27
|
«Introduced in R2008b.» :-)
https://de.mathworks.com/help/matlab/ref/randi.html
|
Profil
|
Kitaktus
Senior  Dabei seit: 11.09.2008 Mitteilungen: 7234
Wohnort: Niedersachsen
 | Beitrag No.6, eingetragen 2017-04-27
|
Ja, wobei ich seit 10 Jahren die Version 2007b benutze, da ein Umstieg auf neuere Versionen bei uns mit erheblichen Mehrkosten verbunden ist.
Die genauen Hintergründe kenne ich nicht, da ich weder für die IT noch für den Einkauf arbeite.
Mal abgesehen davon, kann ich mir auch nur bei einer beschränkten Anzahl an Funktionen die Syntax merken ;-))
|
Profil
|