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

2 Punkte aus den Schnitten 3er Kugeln

 

staeme
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 16.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2011, 08:58     Titel: 2 Punkte aus den Schnitten 3er Kugeln
  Antworten mit Zitat      
Guten Tag zusammen

Ich bin daran für eine Bewegungsanalyse ein Modell zu programmieren und muss dabei einen virtuellen Punkt bestimmen, der von 3 anderen, bekannten Punkten, jeweils einen bekannten Abstand hat. Ich habe es geschafft die zwei Punkte zu finden. Nun muss ich allerdings noch herausfinden, welcher dieser beiden Punkte der richtige ist. Dafür muss ich mit den gefundenen Koordinaten weiterrechnen. Das will ich mit einer if Schleife machen. Leider wird dabei immer eine Fehlermeldung angezeigt. Hier mal der Code und die zugehörige Fehlermeldung:

Code:

 % Kugelmittelpunkte
            k1 = Markers.LSHN(i,:);
            k2 = Markers.LHFB(i,:);
            k3 = Markers.LANK(i,:);
            % Radien
            r1 = LSHMA;
            r2 = LHFMA;
            r3 = LANMA;
            syms x y z;
            % Kreisgleichungen
            k1 = (x - k1(1))^2 + (y - k1(2))^2 + (z - k1(3))^2;
            k2 = (x - k2(1))^2 + (y - k2(2))^2 + (z - k2(3))^2;
            k3 = (x - k3(1))^2 + (y - k3(2))^2 + (z - k3(3))^2;

            gleichung1 = [char(k1),'=',num2str(r1^2)];
            gleichung2 = [char(k2),'=',num2str(r2^2)];
            gleichung3 = [char(k3),'=',num2str(r3^2)];
           
            sol = solve(gleichung1,gleichung2,gleichung3);
   
                       
% Schnittpunkte
            % 1. Schnittpunkt
            sol1 = [sol.x(1) sol.y(1) sol.z(1)];
            % 2. Schnittpunkt
            sol2 = [sol.x(2) sol.y(2) sol.z(2)];
           
% Bestimmen welcher der beiden es wirklich ist
            xober = (Markers.LANK(i,1)+MetaData.children.PROCESSING.children.LAnkleWidth.info.values);
            xunder = (Markers.LANK(i,1)+sin(45)*MetaData.children.PROCESSING.children.LAnkleWidth.info.values);
            yober = (Markers.LANK(i,2) - sin(45)*MetaData.children.PROCESSING.children.LAnkleWidth.info.values);
            yunder = (Markers.LANK(i,2)+sin(45)*MetaData.children.PROCESSING.children.LAnkleWidth.info.values);
           
LMMA(i,:) = NaN(size(Markers.LSHN,1),size(Markers.LSHN,2));
                if xober(1,1) >= (sol1(1)) > xunder(1,1) && yober(1,1) < sol1(i,2) < yunder(1,1)
                    LMMA(i,:) = sol1;
                else  LMMA(i,:) = sol2;
                end

 


Code:

% Fehlermeldung

??? Error using ==> sym.sym>notimplemented at 2621
Function 'ge' is not implemented for MuPAD symbolic objects.

Error in ==> sym.sym>sym.ge at 823
            notimplemented('ge');

 


Das scheint ja was damit zu tun zu haben, dass ich X Y und Z des gesuchten Punktes mit syms definiert habe. Ist es irgendwie möglich die Werte der 2 Punkte vom symbolstatus zu trennen, den sie durch 'syms' zugewiesen bekommen haben?

Herzlichen Dank schon im voraus für eure antworten.
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: 16.11.2011, 11:38     Titel: Re: 2 Punkte aus den Schnitten 3er Kugeln
  Antworten mit Zitat      
Hallo staeme,

In der "See also"-Zeile von "help sym" wird der Befehl DOUBLE erwähnt. Diese Zeile ist oft hilfreich, da sie die Befehle enthält, die im Zusammenhang mit Fragen oft benötigt werden.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
staeme
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 16.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2011, 16:06     Titel:
  Antworten mit Zitat      
Hallo Jan

Merci für die Antwort. Mit Double funktioniert es jetzt.

Ich wünsche dir noch einen schönen Abend.
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.