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

In Plot Legende neben Koordinatensystem und DEG in RAD

 

hf
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 19.07.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.07.2018, 08:37     Titel: In Plot Legende neben Koordinatensystem und DEG in RAD
  Antworten mit Zitat      
Guten Tag,

ich bin noch absoluter MATLAB-Anfänger.

1. Für eine Aufgabe lasse ich ein Dreieck A um einen Punkt drehen und lasse dieses und das gedrehte Dreieck B anzeigen. Dies funktioniert bei Pi und bei 2 Pi; bei z.B. 1/4 Pi gibt es Probleme. Warum ist das so? Will mir jemand einen Tip geben, wie ich die Umrechnungsformel von DEG in RAD in meinen Code eingeben kann?

2. Mit welchem Befehl lässt sich die Legende in der Ausgabe NEBEN das Koordinatensystem setzen, wenn ich im Live-Editor arbeite?

Danke im Voraus.

Code:

dreieck = [
   
    4   8
    3   1
    7   2  
            ];

d = [1  1];

winkel = pi;

endergebniss = drehen_um_punkt( dreieck, winkel, d );

x1 = dreieck(:,1);
y1 = dreieck(:,2);

fill(x1, y1, "b");

axis([-15 15 -15 15])

x2 = endergebniss(:,1);
y2 = endergebniss(:,2);

patch(x2, y2, "y");

grid on
title ('Ausgabe')
xlabel ('x');
ylabel ('y');
legend ('Eingabe','Ausgabe')


csvwrite('ergebniss.csv', endergebniss)
 
Private Nachricht senden Benutzer-Profile anzeigen


J0nas
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 10.09.15
Wohnort: ---
Version: ab 2016a
     Beitrag Verfasst am: 19.07.2018, 09:07     Titel:
  Antworten mit Zitat      
Hallo hf,

Zitat:
Dies funktioniert bei Pi und bei 2 Pi; bei z.B. 1/4 Pi gibt es Probleme. Warum ist das so?

wie sieht denn deine Drehfunktion aus?

Von DEG in RAD kann man mit dem Befehl deg2rad umrechnen.

Willst du die Legende rechts von deinem plot haben geht das zum Beispiel so:

Code:
legend ('Eingabe','Ausgabe','Location','eastoutside')


Grüße
Jonas
_________________

1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
Private Nachricht senden Benutzer-Profile anzeigen
 
hf
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 19.07.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.07.2018, 09:12     Titel:
  Antworten mit Zitat      
Hi Jonas,

danke für Deine Antwort: Die Legende ist plaziert. Die Funktion sieht so aus:
Code:




function endergebniss = drehen_um_punkt(polygon, winkel, punkt)
% verschieben des Ursprungs auf den Punkt d, das Polygon wird in ein
% "anderes" Koordinatensystem überführt.
verschieben = polygon - punkt;

%zur Drehung gegen den Uhrzeigersinn

drehmatrix = [
    cos(winkel) -sin(winkel)
    sin(winkel) cos(winkel)
];

gedreht = verschieben * drehmatrix;

%Rückkehr in das ursprüngliche Koordinatensystem  

endergebniss = gedreht + punkt;
 
Private Nachricht senden Benutzer-Profile anzeigen
 
J0nas
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 10.09.15
Wohnort: ---
Version: ab 2016a
     Beitrag Verfasst am: 19.07.2018, 09:23     Titel:
  Antworten mit Zitat      
Hallo hf,

EDIT: Da war etwas Quatsch in meinem Köpfchen unterwegs Laughing

Gruß
Jonas
_________________

1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable

Zuletzt bearbeitet von J0nas am 19.07.2018, 10:25, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
hf
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 19.07.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.07.2018, 09:32     Titel:
  Antworten mit Zitat      
Top Jonas,

ich überlege jetzt, wie ich das mit einer Eingabe in Grad hinbekomme. Muss hierfür hinter

winkel = pi;

deg2rad als funktion ausgeführt werden?

Beste Grüße,

Heiko
Private Nachricht senden Benutzer-Profile anzeigen
 
J0nas
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 10.09.15
Wohnort: ---
Version: ab 2016a
     Beitrag Verfasst am: 19.07.2018, 09:33     Titel:
  Antworten mit Zitat      
Hallo hf,

Code:

winkel_deg = 90;
winkel = deg2rad(winkel_deg);
 


Gruß
Jonas
_________________

1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
Private Nachricht senden Benutzer-Profile anzeigen
 
hf
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 19.07.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.07.2018, 10:09     Titel:
  Antworten mit Zitat      
Hi Jonas,i

ch habe "winkel = pi" auskommentiert und mit Deiner Idee ersetzt.

"index exceeds array bound" , sagt das programm.

letzte Frage: was heißt diese Fehler?

Grüße
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: 19.07.2018, 12:18     Titel:
  Antworten mit Zitat      
Hallo hf,

Bitte poste immer eine Kopie der vollständigen Fehlermeldung und die entsprechenden Code-Zeile. Es ist leichter einen Fehler zu erklären oder zu lösen, wenn man ihn genau kennt und den Code dazu verwenden kann.

"index exceeds array bound" bedeutet, dass Du auf ein Element eines Arrays zugreifst, das nicht existiert:
Code:
x = 1:10;
x(11)  % FEHLER!

Manchmal geschieht dies, wenn man aus Versehen eine Funktion mit einer Variablen überschreibt:
Code:


Das kann man mit dem Debugger heraus finden. Schreibe dies im Command Window:
Code:

Dann lasse den Code nochmal laufen. Wenn er beim Fehler stoppt, teste, was die benutzen Funktionen sind (hiere wäre es jetzt nützlich zu wissen, welche Zeile den Fehler erzeugt...). Vielleicht:
Code:

Ist der oberste Eintrag die gewünschte Funktion oder eine Variable?

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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 19.07.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.07.2018, 17:42     Titel:
  Antworten mit Zitat      
Hi Jonas,

ich schreibe das als .mlx, daraus kann nicht kopiert werden. hinter dieser Zeile steht ein ausrufezeichen:

winkel = deg2rad(winkel_deg);

Die info "index exceeds array bouns" steht im plot-fenster. wie gesagt ich arbeite mit .mlx, daraus kann ich den code nicht kopieren. ein screenshot ist unten angehängt. kannst Du den öffnen?

Grüße

fehler.PNG
 Beschreibung:

Download
 Dateiname:  fehler.PNG
 Dateigröße:  54.19 KB
 Heruntergeladen:  270 mal
fehler.PNG
 Beschreibung:

Download
 Dateiname:  fehler.PNG
 Dateigröße:  54.19 KB
 Heruntergeladen:  256 mal
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.