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

Zeitabschnitt aus Matrix mit Messwerten ausschneiden

 

FloNr.2

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.08.2015, 08:42     Titel: Zeitabschnitt aus Matrix mit Messwerten ausschneiden
  Antworten mit Zitat      
Hallo allerseits,

zuerst mal hab am Freitag mit Matlab angefangen mich zu beschäftigen, also möglichst einfache Erklärungen bitte Very Happy.

Mein Problem sieht so aus:
Ich habe eine Matrix (2zx8000s) mit Beschleunigungsmesswerten mit dem Zeitpunkt und dem entsprechenden Messwert. Nun wollte ich bevor ich mir eine Funktion zum Integrieren fitte, den gewünschten Zeitbereich aus der Matrix ausschneiden. (in dem Fall von 0,026 bis 0,037 s).

Ich habe schon verschiedene Lösungen aus diesem Forum ausgetestet aber die meisten waren nur für 1x...-Matrizen geeignet, bzw. ich habs nicht übertragen bekommen.

Hab gestern schon den ganzen Tag daran rum gekaut und nichts sinnvolles rausbekommen, wäre also über Hilfe sehr dankbar Smile .

Mfg

Flo


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 20.08.2015, 08:53     Titel:
  Antworten mit Zitat      
Zitat:
Ich habe schon verschiedene Lösungen aus diesem Forum ausgetestet aber die meisten waren nur für 1x...-Matrizen geeignet, bzw. ich habs nicht übertragen bekommen.
ohne den code kann man nur schwer sagen woran es liegt.
ohne weitere informationen kann ich nur sachen nennen die auch schon in den anderen forenteilen stehen und die du ja schon getestet hast. am besten du postest mal was du versucht hast und was nicht so klappt wie du willst. guck dir am besten mal den post aus meiner signatur an. das führt zu einer schnelleren beantwortung der frage.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
FloNr.2

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.08.2015, 09:16     Titel:
  Antworten mit Zitat      
Hallo Winkow

hier der code. Zur Zeit spuckt der haufenweise ans = 0 und ans = 37 aus. Zeichnen tut er aber Wertegefiltertkurz nicht.

Code:
% Mein tolles Programm
%Werte aus Excel importieren
X1 = xlsread('alle signale h15 für matlab test.xls','A2:A8193');
Y1 = xlsread('alle signale h15 für matlab test.xls','D2:D8193');
%Savitzky-Golay-Filter
Wertegefiltert = [X1,sgolayfilt(Y1,3,41)];
%Auf Bereich begrenzen
Wertegefiltertkurz = [0,0]
for i =1:size(Wertegefiltert,1)
    if Wertegefiltert(i,1)>0,026 & Wertegefiltert(i,1)<0,037
    Wertegefiltertkurz=[Wertegefiltertkurz;Wertegefiltert(i,:)];
   
    end
end

%Für Plot
Y2=Wertegefiltert(:,2);
Y3=Wertegefiltertkurz(:,2);

hold on
plot(X1,Y1, 'b')
plot(X1,Y2, 'r')
plot (X1,Y3, 'c')
grid
title('Beschleunigung');
hold off
 


Gruß Flo

Beschleunigung.fig
 Beschreibung:
Der dazugehörige Plot

Download
 Dateiname:  Beschleunigung.fig
 Dateigröße:  194.33 KB
 Heruntergeladen:  347 mal
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 20.08.2015, 09:24     Titel:
  Antworten mit Zitat      
Zitat:
. Zur Zeit spuckt der haufenweise ans = 0 und ans = 37 aus.

Code:
if Wertegefiltert(i,1)>0,026 & Wertegefiltert(i,1)<0,037

in matlab benutzt man . als dezimaltrennzeichen und nicht ,
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
FloNr.2

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.08.2015, 09:29     Titel:
  Antworten mit Zitat      
Verdammt Embarassed .
Sieht jetzt schon viel besser aus, tüftel mal weiter.

Danke Very Happy
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.08.2015, 10:16     Titel:
  Antworten mit Zitat      
Meinst Du in etwa sowas?
Code:

% data.time ist mein Zeitvektor mit der Länge n
% data.signals.values ist ein n x m-Vektor mit n Messpunkten und m gemessenen Größen

% Start- und Endzeit in der Einheit, in der sie aufgezeichnet wurden
start = 5;
ende = 12;

start = find(data.time >= start , 1, 'first');
ende  = find(data.time <= ende, 1, 'last');

data.time = data.time(start:ende) - min(data.time(start:ende));
data.signals.values = data.signals.values(start:ende, :);
 


In data.time liegt jetzt die neue Zeit (beginnt wieder bei null) und in data.signals.values sind die verkürzten Werte drin.
Private Nachricht senden Benutzer-Profile anzeigen
 
FloNr.2

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.08.2015, 14:31     Titel:
  Antworten mit Zitat      
Hi Epfi,

erstmal Danke für die Antwort. Zumindest vorerst wollte ich den Zeitbezug so belassen wie er war.
Habs jetzt so gelöst:
Code:
%

%Werte aus Excel importieren
X1 = xlsread('alle signale h15 für matlab test.xls','A2:A8193');
Y1 = xlsread('alle signale h15 für matlab test.xls','D2:D8193');
%Savitzky-Golay-Filter
Wertegefiltert = [X1,sgolayfilt(Y1,3,41)];
%Auf Bereich begrenzen
Wertegefiltertkurz = [];
for i =1:size(Wertegefiltert,1);
    if Wertegefiltert(i,1)>0.027 && Wertegefiltert(i,1)<0.037;
    Wertegefiltertkurz=[Wertegefiltertkurz;Wertegefiltert(i,:)];
   
    end
end

%Für Plot
Y2=Wertegefiltert(:,2);
X3=Wertegefiltertkurz (:,1);
Y3=Wertegefiltertkurz(:,2);

hold on
plot(X1,Y1, 'b')
plot(X1,Y2, 'r')
plot(X3,Y3, 'g')
grid
title('Beschleunigung');
hold off

 


Werde aber später das mit dem Zeitbezug ändern austesten.

Gruß Flo
 
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.