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

Aus txt. Datei Plot mit maximal wert erstellen

 

NeedHelp

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2019, 12:22     Titel: Aus txt. Datei Plot mit maximal wert erstellen
  Antworten mit Zitat      
Hi, ich hoffe ihr könnt mir weiter helfen.. Ich habe die Aufgabe bekommen aus einen Plot zu erstellen (Kraft/Zeit-Diagramm), wo der Maximalwert der Kraft visuell markiert werden soll (in der Grafik). Als Ausgang habe ich eine Textdatei (soll jedoch auch mit anderen gleich Formatierten Textdateien funktionieren) mit 3 Spalten wovon nur die erste spalte als Zeit und die zweite Spalte als Kraft F verwendet werden sollen, Spalte eins muss auch noch von Millisekunden in Sekunden umgerechnet werden.. Ich bin blutiger Anfänger und habe ein Skript von meinem Prof bekommen womit es lösbar sein soll, jedoch haben meine Studienkollegen genauso Probleme damit..
Noch zur Textdatei, sie besteht aus 3 Spalten mit nur Zahlen, es muss also nichts übersprungen werden, nur eben die letzte Spalte ist uninteressant..
Habe mich schon durch einige Foren gelesen und Sachen ausprobiert, komme aber einfach nicht weiter..
Bis jetzt ist das mein Standpunkt.

Code:
%
clc; clear all; format compact;
%Testat 1

%Eingeben der Datei:
% Daten=input('[Dateiname.txt]=')

%Einlesen der Datei:
D=fopen('Daten_31.txt');
Werte=textscan(D,'%f %f %*f');
fclose(D);
%T=1000;
t=Werte(1);%/T;
F=Werte(2);
plot(t,F)


Als Fehlermeldung kommt:
Error using plot
Not enough input arguments.
Error in Testat1JReichelt (line 14)
plot(t,F)

Danke für eure Hilfe im Voraus!

Testat1JReichelt.m
 Beschreibung:

Download
 Dateiname:  Testat1JReichelt.m
 Dateigröße:  247 Bytes
 Heruntergeladen:  221 mal
Daten_31.txt
 Beschreibung:

Download
 Dateiname:  Daten_31.txt
 Dateigröße:  10.99 KB
 Heruntergeladen:  244 mal


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.11.2019, 13:34     Titel:
  Antworten mit Zitat      
Hallo,

der Fehler ist ungewöhnlich.
Hast du möglicherweise eine eigene Datei als plot.m abgespeichert?
Code:


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
 
NeedHelp

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2019, 14:23     Titel:
  Antworten mit Zitat      
Hi, ne habe noch keinen Plot oder so gespeichert nur die datei und das Programm...
 
NeedHelp

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2019, 14:59     Titel:
  Antworten mit Zitat      
Hi, habe jetzt nochmal nach which plot gefragt, da wird mir folgendes angezeigt:
Error using plot
Not enough input arguments.
Error in Testat1JReichelt (line 14)
plot(t,F)
>> which plot
built-in (C:\Users\...\Documents\MATLAB\toolbox\matlab\graph2d\plot)
>>

aber in diesem Dateipfad ist nur das Programm gespeichert, meine Programme usw. speichere ich unter einem anderen Pfad ab.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.11.2019, 16:06     Titel:
  Antworten mit Zitat      
Hallo,

die Datei verwendet Komma als Dezimaltrennzeichen. Du solltest die Datei entweder umformatieren oder detectImportOptions / readtable verwenden.

Wenn du textscan verwendest, ist das Ergebnis ein Cell Array. Du musst mit { } die Inhalte extrahieren.

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
 
NeedHelp

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2019, 17:39     Titel:
  Antworten mit Zitat      
Hab das jetzt mal so gelöst, aber weiter geht's jetzt auch nicht mehr..


Code:

clc; clear all; format compact;
%Testat 1

%Eingeben der Datei:
% Daten=input('[Dateiname.txt]=')

%Einlesen der Datei:
D=fopen('Daten_31.txt');
Werte = textscan(D,'%s %s %s');
fclose(D);
t=Werte{1};
F=Werte{2};
%Tauschen der Kommas durch Punkte zur Dezimaltrennung:
tt=strrep(t,',','.');
FF=strrep(F,',','.');
%Werte zuornden und umrechnen:
% T=1000;
% ttt=tt/T;
% F=Werte{2};
plot(tt,FF)
 


Als Fehlermeldung kommt jetzt:
Error using plot
Not enough input arguments.
Error in Testat1JReichelt (line 23)
plot(tt,FF)
>>
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.11.2019, 17:50     Titel:
  Antworten mit Zitat      
Hallo,

Zeichenketten kann man ja auch nicht plotten --> mit num2str umwandeln.

Die von mir vorgeschlagenen Wege wären einfacher und effizienter...

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
 
NeedHelp

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2019, 19:58     Titel:
  Antworten mit Zitat      
Okay könntest du mir ein Beispiel von deinen Wegen geben? Das wäre super , kann damit nicht wirklich was anfangen..
Vielen Dank schonmal für deine Hilfe bis hierhin
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.11.2019, 20:28     Titel:
  Antworten mit Zitat      
Hallo,

zum 1. Vorschlag liefert eine Google-Suche etliche Ergebnisse, z.B.
https://de.mathworks.com/matlabcent.....1399-replace-comma-by-dot

2. Vorschlag:
Code:
opts = detectImportOptions('data1.txt', 'DecimalSeparator', ',');
data = readtable('data1.txt', opts);
plot(data.Var1, data.Var2)


Zitat:
kann damit nicht wirklich was anfangen.

Das ist keine sehr hilfreiche Auskunft. Bitte Rückfragen immer möglichst konkret.

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
 
NeedHelp

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2019, 20:45     Titel:
  Antworten mit Zitat      
Hi,
Okay vielen dank, werde ich morgen Früh gleich ausprobieren, ob das so funktioniert, mit dem Vorschlag nr. 2!

Kannst du mir sagen, ob ich den Maximalwert der Kraft direkt im Plot markieren kann und die Werte bennen kann, also dass es optisch schon im plot so visuel dargestellt wird? Oder kann man sich das nur über das comandwindow ausgeben lassen?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.11.2019, 21:31     Titel:
  Antworten mit Zitat      
Hallo,

mit text kannst du eine Beschriftung an der gewünschten Stelle einfügen.

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
 
NeedHelp

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.11.2019, 09:59     Titel:
  Antworten mit Zitat      
Moin,
wollte jetzt mal Vorschlag 2 ausprobieren, muss ich dazu fopen usw. weglassen oder füge ich das dazwischen oder danach ein?
 
Harald
Forum-Meister

Forum-Meister


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

readtable braucht kein fopen. Du brauchst die drei Zeilen wirklich nur so kopieren, wie sie da stehen.

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
 
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.