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

Doppelte Einträge Tensor = NaN

 

sila

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2015, 13:25     Titel: Doppelte Einträge Tensor = NaN
  Antworten mit Zitat      
Hallo,

ich möchte aus folgender Spalte aus meinem Tensor die doppelten Einträge zu NaN o.ä. umbennen.

Hier die Spalte aus dem Tensor: h2(k,:,8)
k geht z.B. von 1 bis 8

So recht weiß ich nicht, wie ich vorgehen soll. Unique beispielsweise löscht wohl die Einträge einfach. Meine Struktur aus Zeilen/Spalten darf aber nicht verloren gehen.


Vielen Dank für Eure Hilfe!


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 01.07.2015, 14:01     Titel:
  Antworten mit Zitat      
sowas in der art?
Code:
a=[1,1,3,2,1,4,4,3,4];
[~,ia] = unique(a);
b=nan(size(a));
b(ia)=a(ia);

_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 01.07.2015, 14:03     Titel: Re: Doppelte Einträge Tensor = NaN
  Antworten mit Zitat      
Hallo sila,

Du hast noch noicht genau erklärt, was Du erreichen möchtest.
Zitat:
ich möchte aus folgender Spalte aus meinem Tensor die doppelten Einträge zu NaN o.ä. umbennen.

Umbenennen? Was sind "doppelte Einträge"?

Zitat:
Hier die Spalte aus dem Tensor: h2(k,:,8)
k geht z.B. von 1 bis 8

Ist k also ein Vektor?

Was genau ist "doppelt"? Welcher der "doppelten" Einträge soll durch NaN ersetzt werden? Ein Beispiel wäre hilfreich.

Ich rate mal:
unique liefert Dir als 2.ten Output noch die Indices der Elemente. Diesen Index kannst Du verwenden:
Code:
[dummy, index] = unique(h2(k, :, 8));
keep = h2(k, index, 8);
h2(k, :, 8) = NaN;
h2(k, index, 8) = keep;

Hilft das?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
sila

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2015, 14:21     Titel:
  Antworten mit Zitat      
Vielen Dank erstmal für Eure Antworten.

Doppelte Einträge bedeutet, das eine Zahl doppelt vorkommt. Also z.b. kommen in der Spalte 3x 0.002 vor.

Und jetzt soll 2x 0.002 z.B. zu NaN umbenannt werden, sodass nur noch 1x 0.002 vorkommt.

k ist halt Bestandteil des Tensor, da weiß ich nicht, wie ich das besser formulieren soll. Aber ich schätze, das man einfach eine for schleife mit k drumherum setzen kann.

Code:
for k=1:k_laenge
         Doppelte Einträge löschen
         end


Ich versuche mal Eure Codebeispiele zu verstehen und einzubauen.
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2015, 15:41     Titel:
  Antworten mit Zitat      
So, vielen Dank, es hat geklappt Smile
 
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.