Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Fachkräfte:
Ingenieur (m/w) für den Bereich modellbasierte Embedded-Softwareentwicklung
Integration von Simulink-Modellen auf die Ziel-Hardware (mit TargetLink) sowie Durchführung von Softwaretests
cbb-Software GmbH - Stuttgart

Informatiker (m/w) für den Bereich Toolkette Embedded Software
Weiterentwicklung einer MATLAB- / Simulink-Toolkette
cbb-Software GmbH - Stuttgart

Softwareentwickler (m/w) automatische Codegenerierung
Umsetzung, Neuprogrammierung und Weiterentwicklung in Simulink, TargetLink und C
EFS - Ingolstadt, Wolfsburg

Gruppenleiter Entwicklung Algorithmik / Machine Vision (m/w)
Weiterentwicklung und Optimierung existierender Algorithmen
SICK AG - Reute bei Freiburg im Breisgau

Modellierer für Zentralverriegelung (w/m)
Umsetzung neuer Funktionen im Elektromobilitätsumfeld
Carmeq GmbH - Berlin

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, 17: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: 18.523
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 31.10.2017, 19: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, 12: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: 39 mal
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 18.523
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 01.11.2017, 12: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, 12: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: 31 mal
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 18.523
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2014a
     Beitrag Verfasst am: 01.11.2017, 12: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, 13: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 - 2018 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.