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

Integration aus einem plot

 

simsonse
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2012, 16:18     Titel: Integration aus einem plot
  Antworten mit Zitat      
Hallo,

ich bin hier u bei Matlab ganz neu u habe eine Frage:

kann man einen plot integrieren? Ich habe nämlich nur meine Datenwerte und keine Funktion dazu. Um mit quad zu integrieren bräuchte ich ja eine Funktion, oder?

Oder kann ich alternativ aus einem plot mir die Funktion berechnen lassen?


Vielen Dank für eure Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

zur Integration numerischer Daten kannst du TRAPZ verwenden.

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

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2012, 17:27     Titel:
  Antworten mit Zitat      
Vielen Dank, Harald!
So etwas habe ich gesucht.

Kannst Du mir auch noch erklären, warum der erste Wert meiner Datenreihe positiv und ganzzahlig sein muss?? Wäre super!

Vielen Dank,
schöne Ostern
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

das würde mich verwundern. Wie kommst du auf die Idee? Das hört sich eher nach einer Fehlermeldung von Indizierung an.

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

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2012, 11:51     Titel:
  Antworten mit Zitat      
Hallo Harald,

mir erscheint immer die Fehlermeldung:

??? Subscript indices must either be real positive integers or logicals.

wenn die erste Zahl eine Dezimalzahl oder negativ ist.

Danke Dir
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.04.2012, 12:10     Titel:
  Antworten mit Zitat      
Hallo,

ja, das habe ich mir fast gedacht. Die Frage ist nur, warum du diese Fehlermeldung bekommst.
Meine Vermutung ist hier immer, dass versehentlich eine Variable mit dem jeweiligen Namen angelegt wurde, die die Funktion nun überlagert.
Meine Vermutung ist zudem, dass das Ergebnis nicht sinnvoll ist, auch wenn es keine Fehlermeldung gibt.
Genauer kann man das aber erst untersuchen, wenn man deinen Code sieht.

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

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2012, 12:12     Titel:
  Antworten mit Zitat      
Code:
%Initialisierung falsch???
ers=0;
Beschleunigung=[0    0];
x=0;
acc=[0    0];
y=0;
x_size=0;
y_size=0;
speed=[0    0];
Geschwindigkeit=[0    0];

for n=1:Nr
acc(n,1)=A(n,2); %SBV_z
Beschleunigung=acc(:,1);
end;

acc
Beschleunigung

for n = 1:Nr    %mit Dezimalzahlen und negativen Zahlen an erster Stelle Probleme, warum?????
    ers=A(1,1):A(n,1);  %x-Werte
    x=ers';  %x-Werte transponieren
    y(n,1)=Beschleunigung(n,1); %y-Werte= Beschleunigungswerte
    ers
    x
    y
    x_size= size(x);
    y_size= size(y);
    x_size
    y_size
   
    speed(n,1)= trapz(x,y); %Trapezregel zum Integrieren ohne Funktion, nur mit Werten; Integrieren von Beschl --> Geschwindigkeit
end;
Geschwindigkeit=speed(:,1)
speed

x_size
y_size





Danke Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.04.2012, 12:38     Titel:
  Antworten mit Zitat      
Hallo,

was ist A?
was ist Nr?

Bitte möglichst ein (bis zum Auftreten des Fehlers) lauffähiges Beispiel posten.

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

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2012, 13:22     Titel:
  Antworten mit Zitat      
Code:
A=[0    0];
[filename pathname] = uigetfile('*.*','Please select a txt file for ploting');

if ~filename
    return
end;

fileR = [pathname filename];
%open Data file and read data for RUS
fin=fopen(fileR,'r');

counter = 1;

while(feof(fin)==0)
str = fgetl(fin);

[Nr SBVx SBVy SBVz] = strread(str,'%f %f %f %f','delimiter',''); %delimiter=wie sind daten getrennt, hier: leerzeichen bzw. tab

A(counter,:) = [Nr  SBVz];
counter = counter+1;

end
   
A

Datensize = size(A);
Nr = Datensize(1);
Nr


%Zeit
Zeit=0;
for n=1:Nr
 Zeit(n,1)=(n-1)*(1/64); %64 Hz
end
a = size(Zeit);


%Initialisierung falsch???
ers=0;
Beschleunigung=[0    0];
x=0;
acc=[0    0];
y=0;
x_size=0;
y_size=0;
speed=[0    0];
Geschwindigkeit=[0    0];

for n=1:Nr
acc(n,1)=A(n,2); %SBV_z
Beschleunigung=acc(:,1);
end;

acc
Beschleunigung

for n = 1:Nr    %mit Dezimalzahlen und negativen Zahlen an erster Stelle Probleme, warum?????
    ers=A(1,1):A(n,1);  %x-Werte
    x=ers';  %x-Werte transponieren
    y(n,1)=Beschleunigung(n,1); %y-Werte= Beschleunigungswerte
%     ers
%     x
%     y
%     x_size= size(x);
%     y_size= size(y);
%     x_size
%     y_size
   
    speed(n,1)= trapz(x,y); %Trapezregel zum Integrieren ohne Funktion, nur mit Werten; Integrieren von Beschl --> Geschwindigkeit
end;
Geschwindigkeit=speed(:,1);
Geschwindigkeit


Passt das so?

Vielen, vielen Dank!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.04.2012, 14:11     Titel:
  Antworten mit Zitat      
Hallo,

vielleicht noch ein kleiner Testdatensatz? Müssen ja nicht genau deine echten Daten sein, nur ein Datensatz, bei dem das Problem auftritt.

Auf den ersten Blick ein potentielles Problem:
ers=A(1,1):A(n,1); %x-Werte

Bist du sicher, dass du das meinst und nicht
Code:
ers=A(1:n,1);  %x-Werte


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

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2012, 14:15     Titel:
  Antworten mit Zitat      
Code:

1500   -150.4521   -68   9.2
1501   -158.1357   -68   2.3
1502   -153.208   -52   11
1503   -150.3762   -47   11.5
1504   -149.7667   -64   84.1
1505   -154.1967   -98   -27
1506   -157.6667   -116   -127
 



mit
Code:
ers=A(1:n,1);  %x-Werte

kommt die Fehlermeldung leider immernoch Smile

Vielen Dank
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.04.2012, 14:40     Titel:
  Antworten mit Zitat      
Hallo,

du wertest
Code:

für skalare Werte von x und y aus. Das macht wenig Sinn.

Wenn du stückweise integrieren willst, hilft vielleicht CUMTRAPZ.
Code:
cumtrapz(Zeit, Beschleunigung)

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

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 06.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.04.2012, 15:22     Titel:
  Antworten mit Zitat      
Was ist denn genau der Unterschied zwischen trapz und cumtrapz?

Und warum funktioniert cumtrapz bei mir nicht? Smile

Vielen, vielen Dank
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.04.2012, 15:51     Titel:
  Antworten mit Zitat      
Hallo,

Lesen der Doku schadet nicht. cumtrapz integriert schrittweise, trapz über den ganzen Bereich.

Ich habe cumtrapz mit deinen Daten probiert, und es ging wie beschrieben. Warum es bei dir nicht geht, kann ich dir auch nicht sagen, solange du nicht sagst, was du genau versuchst - und am besten noch, welche Fehlermeldung dabei auftritt.

Grüße,
Harald
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.