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

Messwerte Logarithmieren

 

Ephraim

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.02.2013, 11:58     Titel: Messwerte Logarithmieren
  Antworten mit Zitat      
Hallo zusammen,

ich bin noch nicht so ganz fit in Matlab und habe das folgende Problem: Ich habe eine zweispaltige Tabelle mit den Messwerten einer akustischen Sweepmessung. Die erste Spalte enthält die Frequenz, die zweite die Amplitude. Mein unser Messsystem hat nun über den gesamten Frequenzbereich mit konstanten Frequenzabständen gemessen, die aber nun logarithmisch dargestellt werden sollen. Da ich das ganze als csv exportieren und mit dem LaTeX paket pgfplots plotten will habe ich da viel zu viele Werte (>65k) und eine zu hohen Frequenzen hin steigende auflösung die ich gar nicht benötige.
Kurzum: Wie kann ich mit steigender Zeilenzahl immer mehr Zeilen aus meiner Tabelle löschen, also einen logarithmischen Auszug daraus bilden?

Vielen Dank!


Harald
Forum-Meister

Forum-Meister


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

du musst dir nur einen entsprechenden Indexvektor basteln.
Code:

l = length(data);
n = anzahlWerte-1;
basis = log(l)/log(n);
idx = round(basis.^(0:n));
datashort = data(idx);


Mangels Testdaten nicht ausprobiert, so oder ähnlich sollte es aber gehen.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.02.2013, 12:55     Titel:
  Antworten mit Zitat      
Vielen Dank schonmal!
nun sagt er aber am Schluss bei der Zuweisung der verkürzten Daten:
Subscript indices must either be real positive integers or logicals.

in idx sind aber alles positive reelle Zahlen, die jedoch viel zu groß werden (3,841e125, die ausgangstabelle hat 65537 Zeilen)
 
Coja
Forum-Century

Forum-Century


Beiträge: 166
Anmeldedatum: 20.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.02.2013, 13:16     Titel:
  Antworten mit Zitat      
Hallo,

ja das Potenzieren von
Code:
kan zu großen Werten führen, wenn basis>1. Mit Messdaten ginge das einfacher zu lösen...
Mein Vorschläge wäre die Erzeugung eines Frequenzvektors mit
Code:
und dann eine Interpolation der zugehörigen Amplituden.

Viele Grüße
Coja
Private Nachricht senden Benutzer-Profile anzeigen
 
emc2

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.02.2013, 14:02     Titel:
  Antworten mit Zitat      
Das mit dem interpolieren war ein guter Tip, läuft, danke!
 
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.