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

Komplexe Matrix verstehen

 

Marander
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 05.11.14
Wohnort: Frankfurt
Version: ---
     Beitrag Verfasst am: 05.11.2014, 22:50     Titel: Komplexe Matrix verstehen
  Antworten mit Zitat      
Hallo Leute,
habe noch nicht all zuviel mit MATLAB gearbeitet, nun bin ich bei einem
Programm auf folgenden Ausdruck gestoßen, den ich noch nicht ganz
verstehe.

rx1 = block(3,1:8,s)*16.^(7:-1:0)'/1e7;

Hier sollen wohl Daten in einer Matrix multipliziert und mit einer XOR
Funktion verknüpft werden, und dann noch " '1e7 ", was dass soll???

Währe sehr nett wenn mir jemand diesen Ausdruck genau erklären könnte.

Der Ausdruck sitzt in folgender Schleife:
Code:
function data = ddata(block)
[nstrings] = size(block)
data = [];
for s = 1:nstrings, // nsring = 8
    rx1 = block(3,1:8,s)*16.^(7:-1:0)'/1e7;  
end


Gruß Marander
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 06.11.2014, 09:31     Titel:
  Antworten mit Zitat      
Nun ja, diese Zeile entnummt ein Stück (wohl einen "Block") von Daten aus der 3D Matrix s und multipliziert diese mit

Code:

16.^(7:-1:0)'/1e7
ans =
  26.843545599999999
   1.677721600000000
   0.104857600000000
   0.006553600000000
   0.000409600000000
   0.000025600000000
   0.000001600000000
   0.000000100000000
 


Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Marander
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 05.11.14
Wohnort: Frankfurt
Version: ---
     Beitrag Verfasst am: 06.11.2014, 15:58     Titel:
  Antworten mit Zitat      
Hallo Andreas,
vielen Dank für die schnelle Antwort zu meinem MATLAB Problem.

WOW, super die Ergebnisse lösen exakt mein Problem!

Wenn man meine vorhandenen Werte (Byte 1 – 8 ) mit Deinen 8
errechneten Ergebnissen Multipliziert und dann die Summe bildet,
kommt man exakt auf den Wert den ich erreichen wollte.

Da ich, wie geschrieben, ja noch Anfänger in C++ bin (die Programm-
sequenz soll ja auch unter GNU Octave laufen), währe es sehr nett von
Dir, wenn du mir die einzelnen Rechenschritte aufführen könntest, wie
man zB. auf den Wert von „26.843545599999999“ kommt.
Ich möchte diese Programmsequenz in einem C++ Programm nachbilden.
Vorschläge hierzu werden dankend entgegen genommen.

Viele Grüße Marander
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 06.11.2014, 16:54     Titel:
  Antworten mit Zitat      
Ich weiss zwar nicht, was das alles mit C++ und Octave zu tun hat, aber MATLAB macht Folgendes:

Code:

(7:-1:0)' % Das gibt einen Spaltenvektor der von 7 bis 0 runterzählt
ans =
     7
     6
     5
     4
     3
     2
     1
     0
 


Die 26.8 kommt vom ersten Wert, also wenn dieser Vektor 7 ist:

Code:

16.^7/1e7
ans =
   26.8435
 


Das ist jetzt keine besondere Zahlenmagie und hat auch nichts mit C zu tun, oder?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Marander
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 05.11.14
Wohnort: Frankfurt
Version: ---
     Beitrag Verfasst am: 06.11.2014, 18:59     Titel:
  Antworten mit Zitat      
Hallo Andreas,
Danke für die Geduld, aber manchmal sieht man den Wald vor lauter Bäumen nicht.
Ich habe mich wohl mit den Sonderzeichen (Punkt, Hochkomma) verwirren lassen,
da ich mich mit Matlab nicht auskenne.

OK, 16 ^ 7 / 10000000 = 26,8435456 !

Vielen Dank für die Unterstützung!


Viele Grüße Marander
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 - 2025 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.