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

rechnen mit verschieden dimensionalen matrizen

 

haveNoIdeaOfWhatIamDoing

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2014, 10:23     Titel: rechnen mit verschieden dimensionalen matrizen
  Antworten mit Zitat      
Hi @all,

nun stehe vor einem weiteren Problem (Problem ist zuviel gesagt).

Und zwar habe ich z.B. eine 2D Matrix:
Code:
temp = magic(3)

temp =

     8     1     6
     3     5     7
     4     9     2


Ich möchte nun von jeder Zeile einen Wert abziehen, der in einem Vektor steht:
Code:
temp2 =

     3
     1
     2


Gerechnet werden soll Folgendes:

Werte der ersten Zeile vom temp (minus) Wert des ersten Elements vom temp 2.
Und das eben für alle Zeilen.

Gewünschtes Ergebnis:
Code:
temp =

     5    -2     3
     2     4     6
     2     7     0
 


Ist das schnell und bequem mit einer Matlabfunktion zu erledigen oder muss ich die Sache mit for-schleifen lösen?

Grüße


haveNoIdeaOfWhatIamDoing

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2014, 10:46     Titel:
  Antworten mit Zitat      
Ok ich habe die Lösung.

man muss einfach temp2 mit repmat auf die entsprechende Dimension bringen.
 
Heiko14
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 05.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2014, 10:46     Titel: auch ohne Schleife möglich
  Antworten mit Zitat      
Hallo haveNoIdeaOfWhatIamDoing;

die Lösung deines Problems geht auch ohne Schleife.
Das Thema gab es auch schon mal.
Du musst zu erst den Vektor als Matrix aufdehnen.
Code:

temp2 = repmat(temp2,1,length(temp))
 

dann kannst du einfach beide Subtrahieren.
Code:

temp-temp2
 


Gruz
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: 22.04.2014, 22:14     Titel: Re: rechnen mit verschieden dimensionalen matrizen
  Antworten mit Zitat      
Hallo haveNoIdeaOfWhatIamDoing,

Bei so winzigen Arrays macht es keinen bemerkbaren Unetrscheid. Aber generell ist BSXFUN effizienter:
Code:
temp = magic(3)
temp2 = [3;1;2];
r = bsxfun(@minus, temp, temp2);

Gruß, Jan
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.