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

Sortieren nach Länge

 

HaveIT
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 29.04.16
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 01.08.2016, 20:33     Titel: Sortieren nach Länge
  Antworten mit Zitat      
Hallo ich habe folgendes Problem:

Ich habe eine 3D Datenstruktur und möchte Daten dazu extrapolieren.
Jetzt kann ich das entweder mit scatteredInterpolant machen oder Zeilenweise mit interp1, was den vorteil hätte das ich mehrere Methoden auswählen kann.
scatteredInterpolant kann ja nur linear.
Jetzt möchte ich mit interp1 aber dort anfangen wo ich am meisten Daten habe.
Also in der Matrix unten in einer "Reihe" wo nur ein Datenpunkt fehlt und dann weiter.
Die einfach Alternativ, für mich leider auch zu schwer Embarassed Laughing , wäre das ganze erstmal reihenweise solange durchzugehen bis in jeder verbliebenen mehr als 2 fehlen.

Code:

A=[1 1 2
   1 2 NaN
   1 3 NaN
   1 4 NaN
   2 1 3
   2 2 4
   2 3 5
   2 4 6
   3 1 4
   3 2 NaN
   3 3 NaN
   3 4 7
   4 1 5
   4 2 6
   4 3 NaN
   4 4 8
   5 1 5
   5 2 6
   5 3 7
   5 3 8];



LG HaveIT
Private Nachricht senden Benutzer-Profile anzeigen


HaveIT
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 29.04.16
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 02.08.2016, 17:20     Titel:
  Antworten mit Zitat      
Hallo hab des jetzt mal so gelöst.
Gibts noch Verbesserungsvorschläge zu meinem Code?

Ich hab den Code jetzt nicht auf das obige BSP umgemodelt.

Code:

function [ C ] = MaxInterP1(Offset,Schrittweite,Cluster,jj3,AnzahlDaten,Methode )
%MaxInterP1 interpoliert dort daten wo am meisten vorhanden sind
%   Detailed explanation goes here
Zelle={};
C=[];
for ii=1:1:jj3
   
    Drehzahl=Offset+ii*Schrittweite-Schrittweite/2;     % Schritte ausrechnen
    Stufe=num2str(Drehzahl);                            % Benennen
    B=Cluster(Cluster(:,1)==Drehzahl,:);                % Vorhandene Daten zu einem Schritt suchen
    C=[C;B];                                            % Daten abspeichern
    Zelle(ii,1)={ ['Stufe' num2str(Stufe)]};            % Name    
    B(any(isnan(B),2),:)=[];                            % Werte löschen wo kein Messpunkt existiert
    Zelle{ii,2}=B;                                      % Vorhandene Daten auf Zelle schreiben                              
    Zelle{ii,3}=length(B);                              % Größe der vorhandenen Daten
end

for kk=1:1:length(Zelle)
   
    if Zelle{kk,3}>AnzahlDaten
       
        C(C(:,1)==Zelle{kk,2}(1,1),3)=interp1(Zelle{kk,2}(:,2),Zelle{kk,2}(:,3), C(C(:,1)==Zelle{kk,2}(1,1),2),Methode,'extrap');
       
    end
   
   
end

end
 
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.