Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Studierende:
Praktikant Toolentwicklung Matlab (m/w)
Branche: Beratung, Expertise, Fahrzeugtechnik, Fahrzeugteile, Technische Dienstleistungen
MBtech Group GmbH & Co. KGaA - Fellbach

Abschlussarbeit / Praktikum: Entwicklung Matlab (m/w)
Branche: Informationstechnologie, Elektrotechnik, Elektronik
GIGATRONIK Technologies GmbH - Ulm

Werkstudent (m/w) im Bereich Hochfrequenzmesstechnik
Branche: Mess-, Regel-, Automatisierungstechnik, Telekommunikation, Nachrichtentechnik
ROHDE & SCHWARZ GmbH & Co. KG - München

Bachelor-/ Masterarbeit in der Softwareentwicklung
Branche: Fahrzeugtechnik, Fahrzeugteile
über Campusjäger GmbH - Karlsruhe

Praktikant/Werkstudent (m/w) für 5G Research- & Development-Aktivitäten
Branche: Elektrotechnik, Elektronik, Mess-, Regel-, Automatisierungstechnik, Telekommunikation, Nachrichtentechnik
ROHDE & SCHWARZ GmbH & Co. KG - München

weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Reihenfolge plot - wie oft 'hold on'

 

asusa

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.10.2017, 16:41     Titel: Reihenfolge plot - wie oft 'hold on'
  Antworten mit Zitat      
Hi,

ich habe eine kleine Excel-Tabelle mit 5 Spalten X, Y1, ERR1, Y2, ERR2 und vier Zeilen.
Mit plotyy möchte ich Y1 auf eine Achse und Y2 auf die andere Achse setzen.
Die Fehlerbalken sollen außerdem hinzu.
Zuletzt soll ein linearer Fit reingelegt werden.

Hierbei habe ich Probleme.

Mein Code sieht wie folgt aus:

Code:
clear all;
clc;

%set(0,'defaultTextInterpreter','latex');
A=xlsread('matlabtest.xls','','','basic');
x=A(:,1)';
y1=A(:,2)';
y2=A(:,4)';
err1=A(:,3)';
err2=A(:,5)';
p1=polyfit(x,y1,1);
p2=polyfit(x,y2,1);

eb1=@(x,y2) errorbar(x,y2,err1,'ko');
eb2=@(x,y2) errorbar(x,y2,err2,'ro');
[ax,h1,h2]=plotyy(x,y1,x,y2,eb1,eb2);
hold on
plot(x,polyval(p1,x),'k');
plot(x,polyval(p2,x),'r');


Den ersten linearen Fit setzt er noch rein. Aber den letzten zeigt er mir nicht an. Egal, ob ich noch ein zweites Hold on setze, oder sonst was.
Mir gehen solangsam die Ideen aus.

Habt ihr eine um das ganze clever zu lösen?
Vielleicht gibt es für die ganze Problemstellung ja eine einfachere Lösung?


Harald
Forum-Meister

Forum-Meister


Beiträge: 17.531
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 31.10.2017, 18:25     Titel:
  Antworten mit Zitat      
Hallo,

hold braucht man nur einmal, aber pro Koordinatensystem. Hier also z.B.
Code:
hold(ax(1), 'on')
hold(ax(2), 'on')


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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2017, 11:11     Titel:
  Antworten mit Zitat      
Danke für deine Antwort Harald,

Code:
clear all;
clc;

%set(0,'defaultTextInterpreter','latex');
A=xlsread('D:\Dropbox\UNI-FBK_SA\Auswertung\matlab test\matlabtest.xls','','','basic');
x=A(:,1)';
y1=A(:,2)';
y2=A(:,4)';
err1=A(:,3)';
err2=A(:,5)';
p1=polyfit(x,y1,1);
p2=polyfit(x,y2,1);

eb1=@(x,y2) errorbar(x,y2,err1,'ko');
eb2=@(x,y2) errorbar(x,y2,err2,'ro');
[ax,h1,h2]=plotyy(x,y1,x,y2,eb1,eb2);
hold(ax(1), 'on')
hold(ax(2), 'on')
plot(x,polyval(p1,x),'k');
plot(x,polyval(p2,x),'r');
 


funktioniert leider noch nicht. es fehlt der letzte Fit von polyval(p2,x).
Irgendwo ist der Wurm drin. Vermutlich in meiner Logik?

untitled.jpg
 Beschreibung:

Download
 Dateiname:  untitled.jpg
 Dateigröße:  15.53 KB
 Heruntergeladen:  9 mal
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 17.531
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 01.11.2017, 11:44     Titel:
  Antworten mit Zitat      
Hallo,

Enthält y2 vielleicht NaN? Ist das einzige Problem, das ich mir noch vorstellen könnte.
Wenn du Beispieldaten zur Verfügung stellst, kann man sich das genauer ansehen.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2017, 11:48     Titel:
  Antworten mit Zitat      
ohje, du hast Recht!

NaN ist in manchen Zellen.

Wie schaffe ich es, dass er die NaN einfach ignoriert und nur mit den vorhanden Daten fitted?

matlabtest.xls
 Beschreibung:

Download
 Dateiname:  matlabtest.xls
 Dateigröße:  6 KB
 Heruntergeladen:  4 mal
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 17.531
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 01.11.2017, 11:54     Titel:
  Antworten mit Zitat      
Hallo,

eine Funktion dafür: rmmissing

Ansonsten "händisch", z.B. über
Code:
incomplete = any(isnan(A),2);
A(incomplete,:) = [];


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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2017, 12:36     Titel:
  Antworten mit Zitat      
das passt, danke dir.
Das Problem ist vermutlich ein anderes, was ich habe (neues Thema).
 
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 goPCB.de


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


Copyright © 2007 - 2017 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.