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

wie ersetzte ich NaN durch Zahlen

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.01.2016, 18:37     Titel: wie ersetzte ich NaN durch Zahlen
  Antworten mit Zitat      
Hallo liebe Matlab Gemeinde,

ich bin erst seit kurzem dabei und habe ein Problem mit meinem Code.
Und zwar möchte ich eine ganz normal Excel Tabelle einlesen in welcher mehrere Werte pro Stunde enthalten sind, aus welchen für einen Monat ein Mittelwert pro Stunde gebildet werden soll.
Jetzt ist aber das Problem, dass es teilweise nicht immer einen Wert pro Stunde gibt.
Kommt dies vor, so zeigt die Matrix [24x31] an diesen Stellen ein NaN an.
Das möchte ich aber nicht. Ist kein Wert für eine Stunde vorhanden, soll aus der Exceltabelle der letzte vorhandene Wert gezogen werden.
Ich glaube ich habe das ein isschen komplziert beschrieben, deshalb hier das Codebeispiel

Code:
%Mittelwerte bestimmen

clear A % löscht die Variable A vorsichtshaleber
A =B1_N_Cell_1_Dec;

for jj=1:31
    x=find(A(:,1)==jj);
   
    B=A(x,:); % nur Tag Nr. jj
   
   
for ii=1:24
    y=find(B(:,4)==ii); % die Uhrzeiten werden gefunden
    c=B(y,end); % Temperatur am Tag nr. jj während Stunde Nr. ii
    c=mean(C);
    if      c==isnan(c) %Nan finden
        c(isnan(c))= Mittelwert (jj,ii-1);
     
      % Mittelwert(jj,ii) = Mittelwert(jj,ii-1); %Matrix Tag x Stunde
     
    else
           
       Mittelwert(jj,ii)=c;
    end
   
end
end


konkret hackts an der stelle if c==isnan(c)......

kann mir irgendjemand weiter helfen :( ?

Vielen Dank schon einmal

[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 26.01.2016, 19:20     Titel: Re: wie ersetzte ich NaN durch Zahlen
  Antworten mit Zitat      
Hallo,

Was soll "c==isnan(c)" denn tun?
isnan gibt TRUE zurück, wenn c ein NaN ist, ansonsten FALSE. Insofern wird dieser Vergleich immer FALSE sein. Meinst Du vielleicht einfach "isnan(c)" ohne das "c==" ?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
fekal
Forum-Century

Forum-Century



Beiträge: 124
Anmeldedatum: 08.02.11
Wohnort: Mainz
Version: 2017b
     Beitrag Verfasst am: 28.01.2016, 23:54     Titel:
  Antworten mit Zitat      
Probiers mal so:
Bsp:
Code:
a=[1 2 nan 4 5]
x=isnan(a)
a(x)=3 % fuer 3 setzt du nun deinen letzten excel Wert ein
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.