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

Matrix als Funktion einer anderen Matrix

 

Logi87
Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 06.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2012, 16:05     Titel: Matrix als Funktion einer anderen Matrix
  Antworten mit Zitat      
Hallo,


hoffe bin hier im richtigen Bereich gelandet.


Also folgendes...

Ich habe eine Matrix A mit 3 Spalten für X,Y und Z Koordinatenwert.
Die Matrix hat 7 Zeilen.

Nun habe ich eine Beobachtungsgleichung die ich 3 mal partiell abgeleitet habe. Jede Ableitung für eine Spalte der Endmatrix B.

Es sollen nun für die Matrix B[i] die X[i], Y[i] und Z[i] aus der Matrix A abgegriffen werden und in die Ableitungen gepackt werden je nach Spalte. Dies soll für alle 7 Zeilen passieren.

Leider bekomme ich es irgendwie nicht hin.
Hoffe mir kann hier jemand weiterhelfen


Danke schonmal im Vorraus. Smile
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.04.2012, 16:59     Titel:
  Antworten mit Zitat      
Hallo,

sind die Ableitungen symbolisch? Oder was soll "in die Ableitung packen" heißen? Es wäre hilfreich, den bisherigen Code zu sehen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Logi87
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 06.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.04.2012, 11:21     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

sind die Ableitungen symbolisch? Oder was soll "in die Ableitung packen" heißen? Es wäre hilfreich, den bisherigen Code zu sehen.

Grüße,
Harald


Ja die Ableitungen sind symbolisch.
Ich habe mir das in etwa so gedacht.

Code:



syms X, syms Xn, syms Y, syms Yn, syms Z, syms Zn

C =sqrt((X-Xn)^2 + (Y-Yn)^2 + (Z-Zn)^2)+c0*(dta-dti);
%Beobachtungsgleichung

%X,Y,Z werden aus Matrix abgegriffen und Xn, Yn und Zn sind gegeben.


for ( i = 1:7)
    X = S(i,2);
    Y = S(i,3);
    Z = S(i,4);
    A(i,1) = diff(C, Xn);
    A(i,2) = diff(C, Yn);
    A(i,3) = diff(C, Zn);
end

A
 


Zuletzt bearbeitet von Logi87 am 07.04.2012, 12:11, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Logi87
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 06.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.04.2012, 12:02     Titel:
  Antworten mit Zitat      
Habe es jetzt mal so probiert. Das problem ist das die Ableitung ja
nur aus Symbolen besteht und nun die Werte eingesetzt werden sollen
und in die Endmatrix gepackt werden sollen.
Damit gibt es scheinbar Probleme.


Code:
for ( i = 1:7)
   
    a = diff(C, Xn)
    b = diff(C, Yn)
    c = diff(C, Zn)
   
    Xn = Sollkoordinaten_N(1,2)
    Yn = Sollkoordinaten_N(2,2)
    Zn = Sollkoordinaten_N(3,2)
 
    X = S(i,2);
    Y = S(i,3);
    Z = S(i,4);
   
    A(i,1) = (a);
    A(i,2) = (b);
    A(i,3) = (c);
end
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.04.2012, 17:31     Titel:
  Antworten mit Zitat      
Hallo,

zum Einsetzen von Werten solltest du SUBS verwenden.

Was du hier eigentlich genau wo einzusetzen versuchst, erschließt sich mir leider nicht.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Logi87
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 06.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2012, 14:07     Titel:
  Antworten mit Zitat      
Bin immernoch nicht viel weiter.
Jetzt kommt imemr eine Fehlermeldung mit der ich gar nix anfangen kann.

-------------------
Error using evalin
Undefined function 'times' for input arguments of type 'cell'.

Error in sym/eval (line 15)
s = evalin('caller',vectorize(map2mat(char(x))));

Error in Teil1 (line 5Cool
a = eval (a)
-------------------

Code:

function [] = Teil1();

A = zeros(7,4);
%Designmatrix die gefüllt werden soll

Satellitendaten_N = evalin('base','Satellitendaten_N');
Satdat  = Satellitendaten_N(2:8, 2:4)
Satdat2 = cell2mat (Satdat)

vx = Satdat2(:,1)
vy = Satdat2(:,2)
vz = Satdat2(:,3)


Sollkoordinaten_N = evalin('base','Sollkoordinaten_N');
%matrix mit Sollkoordinaten der Station N


syms X Xn Y Yn Z Zn c0 dta dti


C =sqrt((X-Xn)^2 + (Y-Yn)^2 + (Z-Zn)^2)+c0*(dta-dti);
%Beobachtungsgleichung


for (i = 1:7)
   
    syms X Xn Y Yn Z Zn c0 dta dti
   
     a = diff(C, Xn)
     b = diff(C, Yn)
     c = diff(C, Zn)
     d = diff(C, c0)
     d = diff(d, dta)
   
    Xn = Sollkoordinaten_N(1,2)
    Yn = Sollkoordinaten_N(2,2)
    Zn = Sollkoordinaten_N(3,2)
 
    X = vx(i,1)
    Y = vy(i,1)
    Z = vz(i,1)
   
    a = eval (a)
    b = eval (b)
    c = eval (c)
    d = eval (d)
   
    A(i,1) = a;
    A(i,2) = b;
    A(i,3) = c;
    A(i,4) = d;
   
end

end
Private Nachricht senden Benutzer-Profile anzeigen
 
Logi87
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 06.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2012, 14:47     Titel:
  Antworten mit Zitat      
Fehler gefunden --> Close
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.04.2012, 14:54     Titel:
  Antworten mit Zitat      
Hallo,

ich halte es für sehr ineffizient, die Ableitungen in jedem Schleifendurchgang neu zu berechnen. Das könnte durch die Verwendung von SUBS statt EVAL vermieden werden.

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.