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

werte aus spalten löschen

 

stevorino
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 06.12.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 22.03.2016, 19:56     Titel: werte aus spalten löschen
  Antworten mit Zitat      
Hallo,

Ich habe eine Matrix [5,5].

0 4 3 4 5
2 0 2 3 2
4 5 0 4 3
3 5 3 0 4
3 4 3 5 0

Jetzt möchte ich gerne die Zellen löschen, die 0 enthalten + die zellen die darüber liegen.

Die Matrix sollte dann so aussehen:

2 5 3 5 NaN
4 5 3 NaN NaN
3 4 NaN NaN NaN
3 NaN NaN NaN NaN
NaN NaN NaN NaN NaN

Ich habe im Forum viel gesucht, aber die Lösung für dieses spezifisches Problem leider nicht gefunden.
Und da steck ich jetzt fest.

Irgendjemand eine Idee?

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


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.03.2016, 20:01     Titel:
  Antworten mit Zitat      
for schleife über die spalten mit find und vorheriger allocation mit nan sollte recht simpel sein.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
stevorino
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 06.12.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 22.03.2016, 22:17     Titel:
  Antworten mit Zitat      
vom ansatz her verstehe ich es glaube ich

Code:
for j=1:5
A(1:Stelle wo Null ist)=[]
end


ich weiß nur nicht, wie ich die stelle wo die null ist in den code einbaue??

grüße,
Stno
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.03.2016, 22:52     Titel:
  Antworten mit Zitat      
du kannst dnicht einfach elemente löschen da dann die dimmensionen nichst stimmen. du musst vorher eine nan matrix in der richtigen größe erstellen und die werte die du gefunden hast dann da einfügen wo sie hin sollen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
stevorino
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 06.12.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 23.03.2016, 12:52     Titel:
  Antworten mit Zitat      
versteh ich vom Sinn her, kann es aber leider nicht umsetzen ...
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 23.03.2016, 12:54     Titel:
  Antworten mit Zitat      
welche fehler treten denn bei deinem versuch es umzusetzen auf?
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
stevorino
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 06.12.11
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 23.03.2016, 13:29     Titel:
  Antworten mit Zitat      
Code:
M=NaN(5,5);

for j=1:5
   
A(1:[i,j]==0)=[];

end


Es tritt gar keine Fehlermeldung auf, und MATLAB verändert die Ausgangsmatrix A auch nicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 23.03.2016, 14:20     Titel:
  Antworten mit Zitat      
du benutzt auch die nan matrix garnicht... die syntax ist mir auch recht unbekannt die du verwendest. das von mir empfolene find wird auch nirgends benutzt.
1. nan matrix erstellen
2. schleife über spalten
3. wo ist die letzte 0 in der spalte
4. wie lang ist das was danach kommt
5. inhalt hinter der 0 in die nan matrix kopieren
_________________

richtig Fragen
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.