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

atan auf Spaltenvektor

 

**Luna**
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.02.15
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 19.02.2015, 13:51     Titel: atan auf Spaltenvektor
  Antworten mit Zitat      
Hallo,

ich bin leider nicht sonderlin matlab-affin und erbitte daher eure Hilfe. Mein Problem erkläre ich an einem kleinen Beispiel:
Ich habe einen Spaltenvektor a=[1 2 3 4]. Nun möchte ich auf jeden Wert die Operation arctan anwenden. Verwende ich aber b=atan(a); so wird mein b eine 4x4 Matrix und in einer Spalte steht das richtige Ergebnis. Confused

Daher ist meine Frage, wie ich die Rechenoperation ändere, sodass ich wieder einen Spaltenvektor mit 4 Einträgen erhalte, wo defacto gilt

b1 = atan a1
b2 = atan a2
b3 = atan a3
b4 = atan a4

Vielleicht ist es ja sogar ganz einfach und ich steh einfach nur auf dem Schlauch - vielen Dank schon mal für eure Vorschläge!
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 19.02.2015, 14:10     Titel:
  Antworten mit Zitat      
den fehler kann ich so nicht reproduzieren. welche matlab version benutzt du? hast du vieleicht selber die atan funktion überschrieben ?
Code:
a=[1 2 3 4];
b=atan(a)
b =

    0.7854    1.1071    1.2490    1.3258
 

_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
**Luna**
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.02.15
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 19.02.2015, 14:40     Titel:
  Antworten mit Zitat      
Hm okay, dann muss ich wohl mein Problem direkt zeigen und es nicht als Beispiel verpacken .
Ich habe eine txt-Datei mit aus der ich die einzelnen Spalten Variablen zuordne u.a. kartesische Koordinaten. Die möchte ich in Kugelkoordinaten umwandeln. Dafür verwende ich folgendes
Code:
%Umwandlung der kartesischen Koordinaten(x,y,z) in
%Kugelkoordinaten(r,phi,theta)

r = sqrt(x.^2 + y.^2 + z.^2);
if (x<0)
    phi = atan(y/x) + pi;
else
    phi = atan(y/x);
end
theta = atan(sqrt(x.^2+y.^2)/z);


x, y und z sind Spaltenvektoren. r wird ebenfalls einer nur phi und theta werden Matrizen.

Wie überschreibt man denn eine Funktion? Könnte ich das zufällig gemacht haben?

Meine Matlab Version ist von 2013.
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 19.02.2015, 14:52     Titel:
  Antworten mit Zitat      
Zitat:
Wie überschreibt man denn eine Funktion? Könnte ich das zufällig gemacht haben?

jup
Code:
schon ist die funktion lokal überschrieben. shadowing net man das. keine angst die original funktion ist noch da aber du hast ihm eine funktion gegeben die höher priorisiert ist.
du kannst zb mal
Code:
machen. da kannst du gucken welche funktionen unter dem namen atan matlab bekannt sind. um dein problem zu beheben würde ich mal mit dem debugger schritt für schritt durchgehen und gucken ob die verwendeten variablen die richtige dimension haben. wie man den debugger benutzt kann man in der doc nachlesen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
**Luna**
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.02.15
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 19.02.2015, 15:05     Titel:
  Antworten mit Zitat      
ah okay, das meinst du mit überschreiben. Da es ja aber, wie du sagst ein lokales Problem ist, müsste ich es in der Datei getan haben. Dem ist nicht so. Ich habe atan kein einziges Mal definiert.
Ich glaube mittlerweile auch, dass es nicht an atan liegt. Ich führe eine Division mit 2 Spaltenvektoren aus. Kann es vielleicht sein, dass diese Division mit einem / genau mein Problem hervorruft? Wenn ja, ist die Frage, wie der Befehl lautet.
Du bist mir eine riesen Hilfe!! Vielen Dank schon mal!
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 19.02.2015, 15:06     Titel:
  Antworten mit Zitat      
Code:
falls du keine matrix divison durchführen willst.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
**Luna**
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.02.15
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 19.02.2015, 15:16     Titel:
  Antworten mit Zitat      
Das ist jetzt wirklich bitter -.-
Es funktioniert.
Vielen, vielen lieben Dank!!!!
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.