WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Zwei Matrizen multiplizieren mit OR

 

nitr0burger
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 17.08.11
Wohnort: ---
Version: 7.9.0 (R2009b)
     Beitrag Verfasst am: 17.08.2011, 10:13     Titel: Zwei Matrizen multiplizieren mit OR
  Antworten mit Zitat      
Tach zusammen,

bin neu hier, also gleich mal schreien wenn ich was falsch gemacht habe Wink

Gleich mal zu meinem Problem:
Ich habe eine Aufgabe bekommen in Matlab zwei Matrizen zu multiplizieren, wobei dies mit einer OR Funktion verknüpft sein soll.

Beispiel:
Matrix A
1 0 1 0
0 0 0 1
1 1 1 0
0 1 1 1

Matrix B
1 1 1 1
0 0 1 1
0 1 1 0
0 0 0 1

Die Matrizen enthalten nur 1 oder 0 und in der ANS-Matrix soll dann auch nur 1 oder 0 auftauchen.

Ist das einigermaßen verständlich?

Hab mit Matlab schon ewig nichts mehr gemacht bzw. halt nur mal kurz im Vordiplom.

Vielleicht kann mir ja jemand helfen. Danke schon einmal vorab.
Private Nachricht senden Benutzer-Profile anzeigen


BlackDread
Forum-Century

Forum-Century


Beiträge: 212
Anmeldedatum: 11.05.11
Wohnort: ---
Version: 2015a
     Beitrag Verfasst am: 17.08.2011, 10:50     Titel:
  Antworten mit Zitat      
Hallo nitr0burger,

also die Frage ist, wie das Ergebnis aussehen soll, da eine Matrixmultiplikation im Prinzip das unten dargestellte ist
Code:
C=A*B
C =

     1     2     2     1
     0     0     0     1
     1     2     3     2
     0     1     2     2


 


C = B*A ergibt ebenfalls wieder was anderes

Aber da kommen ja keine 1/0 bzw logische Matrizen raus...
Alternativ wäre auch
Code:
C=A.*B;
C =

     1     0     1     0
     0     0     0     1
     0     1     1     0
     0     0     0     1

Wobei das einfach &(und) und kein |(oder) ist Wink
Also am besten ein Beispielergebnis zeigen.

Gruß Chris
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.08.2011, 13:34     Titel: Re: Zwei Matrizen multiplizieren mit OR
  Antworten mit Zitat      
Hallo nitr0burger,

Das logische Mutliplizieren entspricht der AND Verknüpfung. Du brauchst aber ein OR. Nun ist es immer fragwürdig, wenn eine Hausaufgabe darin besteht, eine möglichst umständliche Methdoe zu finden ein Problem zu lösen. Später hat das Forum dann wieder eine Menge damit zu tun, die erlenten Unsitten wieder auszutreiben. Also bitte richte dem Dozenten einen schönen Gruß von mir aus... :-)

Eigentlich brauchst Du also:
and(A, B);
Es gibt folgenden praktischen Satz:
not(and(A, B)) == or(not(A), not(B))
Damit sollte eine Umformung machbar sein.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDread
Forum-Century

Forum-Century


Beiträge: 212
Anmeldedatum: 11.05.11
Wohnort: ---
Version: 2015a
     Beitrag Verfasst am: 17.08.2011, 14:10     Titel:
  Antworten mit Zitat      
Um ein bisschen mit logischen Operatoren zu üben, ists ja ok... aber wirklich sinnvoll für die programmatische Umsetzung ist das ja nicht

Code:
not(or(not(A), not(B)))
~(~A|~B)


da kann man den Leuten ja auch gleich eval ohne Ende verordnen Very Happy

Grüßle Chris
Private Nachricht senden Benutzer-Profile anzeigen
 
nitr0burger
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 17.08.11
Wohnort: ---
Version: 7.9.0 (R2009b)
     Beitrag Verfasst am: 17.08.2011, 14:30     Titel:
  Antworten mit Zitat      
Vielen Dank für eure Antworten.

Hab das Problem oder die Aufgabenstellung nicht ganz exakt beschrieben, da ich es erst während der Erarbeitung selber verstanden hab.

Da ich jetzt eine Lösung hab, füge ich die einfach mal bei:
load matrix1.txt
load matrix2.txt

dim1 = size (matrix1)
spaltenzahl1 = dim1(1,1)
zeilenzahl1 = dim1(1,2)

dim2 = size (matrix2)
spaltenzahl2 = dim2(1,1)
zeilenzahl2 = dim2(1,2)

for y=1:zeilenzahl1
t=[0 0 0 0]
for x=1:spaltenzahl1
t=[matrix1(y,x)*matrix2(:,x)']|t
end
R(y,Smile=t
end


Wie gegsagt die Aufgabenstellung war nicht ganz so wie ich es eingangs beschrieben hab.

Sorry dafür und vielen Dank noch mal für eure Antworten.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.