|
|
Datenreihe auf gleiche Länge anpassen |
|
ThKo26 |
Forum-Century
|
|
Beiträge: 184
|
|
|
|
Anmeldedatum: 21.09.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2015b
|
|
|
|
|
|
Verfasst am: 15.02.2018, 22:50
Titel: Datenreihe auf gleiche Länge anpassen
|
|
Hallo zusammen,
ich habe wieder mal ein Problem in Matlab und stehe auf dem Schlauch.
Ich habe Messdaten mit unterschiedlicher Frequenzabtastrate
mat File liegt bei.
Mein Skript:
a -f sind die Frequenzen, mit denen das Signal abgetastet wurde. Meine Zielfrequenz ist fs.
ich möchte nun für fs < 200 die Daten interpolieren mit dem Befehl interpl.
die Messreihen mit fs = 200 einfach behalten
und fs> 200 soll nur der Wert genutzt x-Fache Wert genutzt werden.
Beispiel: data.Time= (1:k/fs:end)
k ist die Frequenz mit der das Signale herausgeschrieben wurde.
zusätzlich sollen die Messreihen die Namen behalten. und alles in eine Table abgespeichert werden.
Ich bitte um eure Hilfe.
Ich werde selbst weiterprobieren und fortschritte posten.
Grüße
Thomas
Beschreibung: |
|
Download |
Dateiname: |
Race_D1R4L4.mat |
Dateigröße: |
643.22 KB |
Heruntergeladen: |
311 mal |
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.448
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 16.02.2018, 14:52
Titel:
|
|
Hallo,
... und was hast du nun versucht / welche Probleme sind aufgetreten?
Wenn du schon weißt, welchen Befehl du verwenden möchtest, dann ist das gröbste doch schon erledigt.
Grüße,
Harald
|
|
|
ThKo26 |
Themenstarter
Forum-Century
|
|
Beiträge: 184
|
|
|
|
Anmeldedatum: 21.09.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2015b
|
|
|
|
|
|
Verfasst am: 16.02.2018, 15:20
Titel:
|
|
Hallo Harald,
mein Problem ist, ob ich if oder for nutze.
Außerdem habe ich probleme mit der Umsetzung Da ich nicht auf die struct zugreifen kann, wie ich es aus der Tabelle kenne.
Ich poste später meinen aktuellen Stand mit den jeweligen Fehlern.
Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.448
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 16.02.2018, 15:21
Titel:
|
|
Hallo,
Zitat: |
mein Problem ist, ob ich if oder for nutze. |
Beides. Eine for-Schleife über die Signale, und darin eine if-Abfrage je nach Frequenz.
Grüße,
Harald
|
|
|
ThKo26 |
Themenstarter
Forum-Century
|
|
Beiträge: 184
|
|
|
|
Anmeldedatum: 21.09.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2015b
|
|
|
|
|
|
Verfasst am: 17.02.2018, 15:35
Titel:
|
|
Hallo,
mein Code:
Ich bekomme es nicht hin, dass ich in der Struktur auf
data.TIME zugreifen kann, ohne TIME zu nutzen.
data.(Channels(1)), data.[Channels(1)],data.(Channels{1}),
deshalb kommt der Fehler
Bitte um hilfe.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.448
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 17.02.2018, 15:55
Titel:
|
|
Hallo,
die Codestruktur ist so nicht sinnvoll. Der Teil "if k(n) == 200" ist innerhalb von "if k(n) < 200" und kann somit nicht erreicht werden.
Du hast l als Schleifenindex, wovon ich aufgrund der Verwechslungsgefahr mit 1 abraten würde. Wo verwendest du das l denn aber?
Die richtige Syntax ist
data.(Channels{1})
. Welche Probleme treten damit auf?
Grüße,
Harald
|
|
|
ThKo26 |
Themenstarter
Forum-Century
|
|
Beiträge: 184
|
|
|
|
Anmeldedatum: 21.09.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2015b
|
|
|
|
|
|
Verfasst am: 17.02.2018, 16:07
Titel:
|
|
Hallo
Zitat: |
die Codestruktur ist so nicht sinnvoll. |
stimmt, das macht keinen Sinn!
Zitat: |
Die richtige Syntax ist data.(Channels{1}) |
jetzt kommt der Fehler nicht mehr, hatte anscheind etwas vergessen.
aktueller Code:
Jetzt läuft es ohne Fehler, aber es kommen die falschen Ergebnisse raus. es sollten alle Channels die gleiche Länge habe,
Irgednwoe macht er einen fehler.
Grüße
|
|
|
ThKo26 |
Themenstarter
Forum-Century
|
|
Beiträge: 184
|
|
|
|
Anmeldedatum: 21.09.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2015b
|
|
|
|
|
|
Verfasst am: 17.02.2018, 16:17
Titel:
|
|
Daten:
Data: Frequenz: Ergbnis [ist]: Ergebnis [soll]:
10712 100 2143 21424
10712 100 2143 21424
21424 200 4285 21424
53560 500 10712 21424
53560 500 10712 21424
53560 500 10712 21424
53560 500 10712 21424
107120 1000 21424 21424
Die if. Folge funktioniert nicht. Werde mal schauen wo der Fehler leigt.
Grüße
|
|
|
ThKo26 |
Themenstarter
Forum-Century
|
|
Beiträge: 184
|
|
|
|
Anmeldedatum: 21.09.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2015b
|
|
|
|
|
|
Verfasst am: 17.02.2018, 16:27
Titel:
|
|
mein Code:
Fehler:
danke für die Hilfe.
Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.448
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 17.02.2018, 17:22
Titel:
|
|
Hallo,
dann schau dir doch mal die beteiligten Variablen bei dem Befehl an.
x = totalsamples ist ganz sicher keine sinnvolle Einstellung. Das erste Argument muss der zugehörige Zeitvektor zu den Daten sein.
Grüße,
Harald
|
|
|
ThKo26 |
Themenstarter
Forum-Century
|
|
Beiträge: 184
|
|
|
|
Anmeldedatum: 21.09.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2015b
|
|
|
|
|
|
Verfasst am: 17.02.2018, 20:15
Titel:
|
|
Hallo,
dummer Fehler!
Ich bekomme eine Warnung:
die Ergebnisse passen aber, bis auf die interpol. Da habe ich statt 21424 21423.
Code:
Es sind einmal Zeilenvektoren und Spalenvektoren, gibt es einen Befehl, damit es einheitlich ist ? (siehe Bild)
Danke für die Hilfe.
Grüße
Beschreibung: |
|
Download |
Dateiname: |
Unbenannt.JPG |
Dateigröße: |
25.12 KB |
Heruntergeladen: |
260 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.448
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 17.02.2018, 20:59
Titel:
|
|
Hallo,
Zitat: |
Warning: Integer operands are required for colon operator when used as index |
Die Warnung ist doch recht klar, oder? Man könnte die Schrittweite beispielsweise runden.
Zitat: |
die Ergebnisse passen aber, bis auf die interpol. Da habe ich statt 21424 21423.
|
Dann nutze mal den Debugger um zu schauen, woran das liegt. Ich würde generell
linspace
verwenden, wenn ich Vektoren gleicher Länge will.
Zitat: |
Es sind einmal Zeilenvektoren und Spalenvektoren, gibt es einen Befehl, damit es einheitlich ist ? (siehe Bild) |
Du dürftest besser als ich wissen, welche Vektoren von welchem Fall kommen. Um aus Zeilenvektoren Spaltenvektoren zu machen (oder umgekehrt), braucht man nur zu transponieren ( nachgestelltes ' ).
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|