Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Automatisierungstechnik

Studierende:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

polarkoordinaten in kartesiche und plotten

 

maximos

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2020, 14:13     Titel: polarkoordinaten in kartesiche und plotten
  Antworten mit Zitat      
Ich schaffe es nicht meine daten welche im polar form vorliegen mit pol2cart in karthesische umzuwandeln.

Dies ist mein Anfangsversuch
Code:
%Reihen - radius, Spalten Winkel
data = poldata; %polardata

ttheta = [];  %ich weiß nicht wie ich die 512x600000 aufteilen soll
rho = [];

[X,Y] = pol2cart(THETA,RR); %(angle, radius)
imagesc(X,Y)


Danke

P.S die registrierungsbestätigungsmail kommt nicht an
(auch nicht im spam gelandet)


T16
Forum-Century

Forum-Century


Beiträge: 102
Anmeldedatum: 31.01.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2020, 14:48     Titel:
  Antworten mit Zitat      
In welcher Form liegen die Daten denn genau vor? Ich sehe, dass du eine Variable namens poldata benutzt, sehe aber nicht wie diese genau aussieht oder was darin steht.

Überhaupt sieht das alles etwas mysteriös aus, du belegst erst data mit einer exakten Kopie von poldata (Warum nicht einfach poldata verwenden und die Kopie sparen?), dann definierst du ttheta und rho als leere Variablen, benutzt keine einzige der gerade angelegten 3 Variablen und übergibst stattdessen ein mysteriöses THETA und RR and pol2cart, von denen auch kein Mensch weiß wie sie aussehen. Hast du versucht den Code auszuführen? Welche Fehlermeldungen tauchen auf?
Private Nachricht senden Benutzer-Profile anzeigen
 
maximos

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2020, 16:15     Titel:
  Antworten mit Zitat      
danke für deine Antwort.
Ich habe eine Matrix in "512x588001 uint16" Matrix Form.
Die Reihen geben jeweils den Radius an und die Spalten den aktuellen Winkel.

die datei poldata die in eine datei datawopo.mat welche ich mit load vorher in das Worspace laden konnte.

um pol2cart nutzen zu können hast du recht sind meine Variablen nicht passend
(ich versuche es immer noch etwas zu verstehen)

Code:

data = poldata; %polardata

theta = [];  %ich weiß nicht wie ich die 512x600000 aufteilen soll
rho = [];

[X,Y] = pol2cart(theta,rho); %(angle, radius)
imagesc(X,Y)
 


Ich muss es also irgendwie schaffen (glaube ich) die matrix in je zwei vektoren pro spalte zu unterteilen?
Ich glaube der winkel ist einfach der geht ja immer von 1-512
Und dazu muss ich je immer ein Spalte der 600000 spalten zuordnen. Und dieses muss dann alles irgendwie an pol2cart übergeben werden.

Da komme ich aber noch keinen schritt weiter.
Bei kleinen Beispielen wie dem hier klappt es:
Zitat:
clc
thetai = [0 pi/4 pi/2 pi]
rhoi = [5 5 10 10]
[x,y] = pol2cart(theta1,rho1)
 
T16
Forum-Century

Forum-Century


Beiträge: 102
Anmeldedatum: 31.01.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2020, 17:24     Titel:
  Antworten mit Zitat      
Zitat:
Ich habe eine Matrix in "512x588001 uint16" Matrix Form.


uint16 sind unsigned integers, also positive ganze Zahlen. Bei Koordinaten würde ich eher Gleitkommazahlen erwarten. Die Größe der Matrix erscheint mir auch sehr massiv, das müssten wenn ich richtig gerechnet habe ein halber Gigabyte an Integers sein. Kannst du einen Teil des .mat Containers hochladen? Alles hochladen wird nicht funktionieren, da er zu groß ist. Du kannst ihn wie folgt zusammenkürzen:

Code:
data_kleiner=data(:,1:1000);
save('data_kleiner.mat', 'data_kleiner')


Du hast schon recht, du musst 2 Vektoren erstellen. Einer enthält die Radien aller Punkte, der andere die Winkel. Wir müssen nur noch rausfinden wie die Daten in poldata hinterlegt sind.
Private Nachricht senden Benutzer-Profile anzeigen
 
maximos

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2020, 17:38     Titel:
  Antworten mit Zitat      
Ja ist ziemlich groß die datei
Code:
data_kleiner=data(:,1:1000);

Habe jetzt aus der Matrix alle Zeilen und spalten 1:1000


Danke

data_kleiner.mat
 Beschreibung:

Download
 Dateiname:  data_kleiner.mat
 Dateigröße:  513.57 KB
 Heruntergeladen:  7 mal
 
protter
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 25.06.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2020, 17:39     Titel:
  Antworten mit Zitat      
Jetzt auch nicht mehr als Gast unterwegs
maximos=protter
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 21.729
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.06.2020, 18:08     Titel:
  Antworten mit Zitat      
Hallo,

das Problem scheint mir die Interpretation der Daten. Was bedeuten denn z.B.

201 241 239
224 231 222
211 221 222

genau? Sind dies etwa Werte zu bestimmten Winkeln und Radien? Falls ja, dann würde ich nicht die Daten konvertieren sondern diese Winkel und Radien (welche das sind, müsstest du wissen). So kannst du zu jedem Datenpunkt einen x- und y-Wert bekommen.

Beispiel:
Code:
angles = (0:pi/8:2*pi)';
radii = 1:10;
[X, Y] = pol2cart(angles, radii)


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
protter
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 25.06.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2020, 18:16     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,
Sind dies etwa Werte zu bestimmten Winkeln und Radien?

ja genau in der Zeile 1-512 ist jeweils mein Radius, und in den Spalten der Winkel
es ist eine rotierende sonde die langsam vorgeschoben wird.

Ich weiß nur nicht wie ich jetzt damit die daten aus data_kleiner nutze Smile?


Beispiel: Im Anhang aus A wird B versuche ich


EDIT: https://de.mathworks.com/matlabcent.....atrix-in-polar-coordinate
ich glaube dort gibt es ein ähnliches vorgehen

Unbenannt.png
 Beschreibung:

Download
 Dateiname:  Unbenannt.png
 Dateigröße:  5.89 KB
 Heruntergeladen:  7 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
T16
Forum-Century

Forum-Century


Beiträge: 102
Anmeldedatum: 31.01.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2020, 20:52     Titel:
  Antworten mit Zitat      
Die Zahlen sind alle in einem Bereich von 78 - 269, könnten also Winkel in grad sein.

Zitat:
ja genau in der Zeile 1-512 ist jeweils mein Radius, und in den Spalten der Winkel


Meinst du, in der ersten Zeile oder Spalte steht der Radius und danach kommen nur noch Winkel? Das wäre möglich, da ist aber verdächtig, dass die Werte für die Radien in der gleichen Größenordnung liegen wie die Winkel. Na du kannst damit mal etwas rumspielen:

Code:
Radius=data_kleiner(1,1);
Winkel=data_kleiner(1,2:end);

Winkel=deg2rad(double(Winkel));
Radius=double(Radius);

[x,y]=pol2cart(Winkel, Radius);
plot(x,y,'o')
axis equal
grid on


vielleicht findest du dann noch heraus wie die Daten zu interpretieren sind.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 21.729
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.06.2020, 22:09     Titel:
  Antworten mit Zitat      
Hallo,

ein Versuch noch von meiner Seite: ich kann es mir nur vorstellen, dass die Daten so zu verstehen sind:

........... | Winkel(1) | Winkel (2) | Winkel(3) | ...
---------------------------------------------
Radius(1) | 201 ... | 241 ... | 239
Radius(2) | 224 ... | 231 ... | 222
Radius(3) | 211 ... | 221 ... | 222

(die Punkte dienen nur für eine annähernd vernünftige Formatierung)

Wenn dem so ist, dann musst du aber die (von dir nicht zur Verfügung gestellten) Informationen Radius und Winkel transformieren, nicht die Daten an sich.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
protter
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 25.06.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.06.2020, 07:35     Titel:
  Antworten mit Zitat      
Entschuldigt, dass das hier zu so einer doppelten frage wird, da ich die daten selber wphl nicht genau verstanden hatte.

........... | Radius(1) | Radius(2) | Radius(3) | ...
---------------------------------------------
Winkel(1) | 201 ... | 241 ... | 239
Winkel(2) | 224 ... | 231 ... | 222
Winkel(3) | 211 ... | 221 ... | 222

Jedem Punkt wird pro spalte in einem sich drehenden element ein Radius zugeteilt.
Beideutet mein gesamtradius liegt bei 360 Grad.
Dann in der nächsten spalte fängt das Spiel wieder mit neuen Daten von Vorne an.
Dadurch entsteht BILD A
Und ich versuche mit cart2pol auf B zu kommen

Bedeutet ich sollte da auf die Daten erst einmal ein Meshgrid drauf legen, oder ngrid nutzen oder?

Unbenannt.png
 Beschreibung:

Download
 Dateiname:  Unbenannt.png
 Dateigröße:  4.57 KB
 Heruntergeladen:  4 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
T16
Forum-Century

Forum-Century


Beiträge: 102
Anmeldedatum: 31.01.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.06.2020, 07:48     Titel:
  Antworten mit Zitat      
Die Daten sind also die Radien, und die Winkel jeweils äquidistant zueinander?

In dem Fall musst du dir den Winkelvektor in radiant selbst konstruieren.

Code:
theta=linspace(0,2*pi,512);
r=Data(:,1);


Zusammen mit den entsprechenden Radien aus der Tabelle kannst du dann pol2cart anweden und direkt plotten, meshgrid oder andere Schweinereien sind dafür nicht notwendig.

Code:
[x,y]=pol2cart(theta, r);
plot(x,y);


Das Konvertieren in kartesische Koordinaten kannst du dir für den Plot sogar schenken, matlab hat Funktionen für das Plotten von Polarkoordinaten, siehe polarplot()

https://de.mathworks.com/help/matlab/ref/polarplot.html
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2020 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.