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

Kordinatentransformation richtig berechnen

 

3xf

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.11.2014, 17:33     Titel: Kordinatentransformation richtig berechnen
  Antworten mit Zitat      
Hallo,

ich will Messreihen aufnehmen und will diese von einem dreiphasigen in ein zweiphasiges System umrechnen.
Die Messgröße ist abhänig vom Winkel x (d.h. jedes dreierpärchen neuer Winkel)
Wenn ich jetzt einfach mal definiere
Gemessene Größe Y = [ 1, 2, 3; 1, 2, 3; 1, 2, 3; 1, 2, 3; 1, 2, 3;]';
und Winkel = [1:4];


Code:

Ftrafo = @(x) ([cos(x); cos(x-pi/3); cos(x)])' %Transformationsvorschrift
Y = [ 1, 2, 3;  1, 2, 3; 1, 2, 3; 1, 2, 3; 1, 2, 3;]'; %Messgröße(Winkel)
Winkel = [1:4]; %verschiede Winkel
y = Ftrafo(Winkel)*Y;
 


Was ich will:
Erster Messwert y1,y2,y3
Ftrafo(Winkel1) = F1,F2,F3
Ergenis => y1*F1+y2*F2+y3*F3

Ftrafo gibt mir eine Matrize zurück, welche Zeilenweise die Umrechnungsfakoren für einen bestimmten Winkel erhält. Die umzurechnenden Messwerte, habe ich Spaltenweise. Ich möchte jetzt die Messwerte umrechnen. Wenn ich Ftrafo(Winkel)*Y ausführe, bin ich quasi nur an der Diagonale interessiert. Wie mache ich das am besten?


3xf

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.11.2014, 19:05     Titel:
  Antworten mit Zitat      
Vielleicht habe ich es zu missverständlich ausgedrückt.
Ich möchte folgenes berechne: Erste Zeile a mit erster Spalte b, zweite Zeile a mit zweiter Spalte b. Ergibt genau die Diagonale. ich berechne aber nxn Elemente, obwohl ich nur n benötige. Gibt es einen effizienteren Weg? Vielen Dank.
Code:

>> a = round(10*rand(10,3));
>> b = round(10*rand(3,10));
>> b
b =

    1    1    1    8    3    0    6    9    2    1
    1    2    7   10    7    5    2    4    6    6
   10    5    2    1    0    9    6    7    9    9

>> a*b
ans =

    24    14     8    34    12    18    36    50    26    22
   102    63    66   117    60   111   102   141   129   123
    67    49    69   155    79    80   104   153   107    97
    61    32    19    16     7    59    38    46    60    60
    60    41    56    97    54    75    66    95    89    85
   106    68    76   151    76   116   122   172   141   132
    63    34    21    32    13    59    50    64    64    62
    25    17    21    46    23    28    34    49    36    33
    65    35    17    46    15    54    66    87    64    59
    71    43    35    98    41    64    94   131    84    75

>> diag(a*b)
ans =

    24
    63
    69
    16
    54
   116
    50
    49
    64
    75


 
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.11.2014, 20:58     Titel:
  Antworten mit Zitat      
Hallo,

die umformulierte Frage ist in der Tat deutlich leichter zu verstehen.
Vorschlag:

Code:


Grüße,
Harald
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.