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

Problem mit Splinefunktion --> too many arguments

 

TheRandomGuy
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 13.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2014, 11:38     Titel: Problem mit Splinefunktion --> too many arguments
  Antworten mit Zitat      
Hi,

ich hab eine größere Menge an Messwerten und möchte nun einen Splinefit haben da das "Signal" relativ verrauscht ist.
Hab es mit der Splinefunktion versucht.

Code:

    phi=0:360/size(r,2):360;
    phis=0:360;
    rs=spline(phi(1:end-1),r,phis);
 


Das Problem ist das er mir die Fehlermeldung:
Error using spline
Too many input arguments.


Ich weiß jetzt nicht genau ob er damit meint das ich die Funktion an sich falsch benutzte oder ob die übergebenen Variablen zu groß sind.
Die der Funktion übergebene Matrix r enthält ca. 32k Werte.
Die Frage ist jetzt ob MAthlab damit nicht umgehen kann, also ihm das zu viel ist?

Ich muss auch zugeben das ich evt. die englische Beschreibung nicht richtig verstanden hab.

Wär super wenn mir das jemand kurz erklären könnte Smile

Btw. hab ich es auch schon mit einem polyfit versucht. Jedoch war das Ergebniss nicht ganz zufriedenstellend und somit wollte ch es mit den Splines versuchen.

mfg
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

Zitat:
ich hab eine größere Menge an Messwerten und möchte nun einen Splinefit haben da das "Signal" relativ verrauscht ist.

Eine Spline wird dir da nicht helfen, da sie durch alle Datenpunkte gehen muss. Durch Auswertung an bestimmten Punkten wird zwar vielleicht die Oszillation verringert, aber wirklich sinnvoll ist diese Vorgehensweise nicht.
Besser wäre beispielsweise eine Filterung der Daten mit filter oder der Funktionalität aus der Signal Processing Toolbox.

Zur konkreten Fehlermeldung: man bräuchte auch r, um das reproduzieren zu können. Zumindest ein r, bei dem das Problem auftritt. Mit
Code:
r = sind(0:0.01:360); % 36000 Werte

klappt es jedenfalls.

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

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 13.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2014, 13:42     Titel:
  Antworten mit Zitat      
okay ich dachte der legt durch die Stützpunkte nen Spline sodas der die restlichen Punkte nur wenig von ihm Abweichen.
Ich werd mich jetzt nochmal mit dem Filtern beschäftigen, bzw. mit der Toolbox. Die sieht ja auf den ersten Blick nicht schlecht aus.

Im Anhang hab ich mal ein Beispiel für mein Signal als Excelfile hinterlegt mit den Werten mit denen ich es versucht hab.

sample.xls
 Beschreibung:

Download
 Dateiname:  sample.xls
 Dateigröße:  1.17 MB
 Heruntergeladen:  297 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

folgendes läuft bei mir problemlos durch:
Code:
r = xlsread('sample.xls');
phi=0:360/length(r):360;
    phis=0:360;
    rs=spline(phi(1:end-1),r,phis);

size(r,2) macht da wenig Sinn, weil r ja nur 1 Spalte hat.

Aber wie gesagt: filtern wird sinnvoller sein. Mit einem einfachen Mittelwertfilter:

Code:
   plot(r)
    N = 100;
    rfilt = filter(ones(1,N)/N, 1, r);
    rfilt(1:N-1) = NaN;
    hold all
    plot(rfilt, 'r', 'LineWidth', 2)
    hold off


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

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 13.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2014, 16:01     Titel:
  Antworten mit Zitat      
Danke, der mit dem Filter gehts echt schon ganz gut. Damit kann man weiterarbeiten Smile

Leider kommt bei mir immernoch die Fehlermeldung, kann das evt. was mit Speicherproblemen, also nicht genung RAM oder so zu tun haben?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
kann das evt. was mit Speicherproblemen, also nicht genung RAM oder so zu tun haben?

Versuch mal memory.
Deine Daten sind weniger als 1 MB - das wäre schon sehr erstaunlich, wenn es da Speicherprobleme gäbe.

Was gibt folgender Befehl zurück?
Code:

Welche MATLAB-Version nutzt du?

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

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 13.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2014, 18:59     Titel:
  Antworten mit Zitat      
Okay da lag der Hase im Pfeffer. Mathlab hat die Fkt spline aus nem anderen Ordner genutzt und nicht die "Orginale". Wie es auf diese Idee kommt ist mir zwar rätselhaft, aber jetzt klappts.

Den Befehl "which" werd ich mir mal merken fals das nochmal auftritt.

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

Forum-Meister


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

MATLAB (ohne h) durchsucht den Suchpfad (pathtool)von oben nach unten nach einer .m-Datei des angegebenen Namens, es ist also ein ganz klar festgelegtes Verhalten.
Liegt die spline.m, die in deinem Fall angezeigt wurde, in einem Installationsverzeichnis von MATLAB oder in einem von dir dem Suchpfad hinzugefügten Verzeichnis? In letzterem Fall ist die Benennung spline.m seitens des Autors unglücklich.

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.