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

Matrix mehrere Zeilen und Spalten löschen

 

Ninawe
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 07.02.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.02.2014, 16:16     Titel: Matrix mehrere Zeilen und Spalten löschen
  Antworten mit Zitat      
Hallo,
ich habe ein Frage zur Verkleinerung von Matrizen:
Ich habe zum Beispiel diese 6x9 Matrix gegeben:
Code:
A = [1,2,3,4,5,6,7;2,3,4,5,6,7,8;3,4,5,6,7,8,9;4,5,6,7,8,9,4;1,2,4,5,6,7,1;3,4,5,6,7,9,2]
nun möchte ich die Matrix "mittig" verkleinern, also quasi den Rand abschneiden. Welche Zeilen ich löschen möchte, weiß ich, also hier wäre das die 1., 2., 5.,6. Zeile und danach dann die 1.,2.,3., 7.,8.,9. Spalte, sodass das so aussieht:
Code:
A_neu = [5,6,7;6,7,8]

Wenn ich das mit einer for-Schleife versuche
z.B.:
Code:
for i = 1:3
A(i,:) =[];
end

ändert sich in jeder Schleife der Wert von i löscht mir jede zweite Zeile.

Kann mir bitte jemand helfen?
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 17.02.2014, 16:23     Titel:
  Antworten mit Zitat      
Hallo

Zitat:

danach dann die 1.,2.,3., 7.,8.,9. Spalte

in deinen Beispiel hat deine Matrix A nur 7 Spalten
anlehnend an deiner Beispiel so:
Code:

A = [1,2,3,4,5,6,7;2,3,4,5,6,7,8;3,4,5,6,7,8,9;4,5,6,7,8,9,4;1,2,4,5,6,7,1;3,4,5,6,7,9,2]
A([1,2,5,6],:)=[]
A(:,[1,2,6,7],:)=[]

 
Private Nachricht senden Benutzer-Profile anzeigen
 
ninawe49

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.02.2014, 16:41     Titel:
  Antworten mit Zitat      
Super, genau das Suche ich. Allerdings habe ich eine sehr viel größere Matrix. Wie kann ich zum Beispiel die erste Bis 120. Zeile löschen ohne alle Zeilen eingeben zu müssen? Geht Sowas wie
A([1:120],:)=[];
Hab leider Grade kein matlab zum testen da.
Vg Ninawe
P. S. Sorry dass ich als Gast Posten muss, Check das auf dem Handy Grade nicht ;-)
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 17.02.2014, 16:44     Titel:
  Antworten mit Zitat      
Hallo

ja das geht, wirklich so
Code:


A(1:120,:)=[];
 
Private Nachricht senden Benutzer-Profile anzeigen
 
ThKo26
Forum-Century

Forum-Century


Beiträge: 184
Anmeldedatum: 21.09.17
Wohnort: ---
Version: 2015b
     Beitrag Verfasst am: 12.01.2018, 12:59     Titel:
  Antworten mit Zitat      
Hallo zusammen,

ich habe eine frage zu dem Thema.

ich habe eine Liste mit readtable eingelesen.

nun möchte ich mehrere Spalten löschen und unter einem anderen Namen abspeichern, damit mir die eingelesen Liste im Urpsung erhalten bleibt.
Code:
data_RH = tbl_P([1,2,3,4,8,9],:) = [];
 


ich habe zweimal ein "=". stehe gerade auch auf dem Schlauch. :/

gerade versuche ich mit der Numerierung die Spalten zu löschen, aber diese Spalten haben einen Namen.
Code:
data_RH = tbl_P([tbl_DS.Info,tbl_DS.Kommentar,tbl_DS.Beschreibung,4,8,9],:) = [];
 


das wäre für mich die logische Schlussfolgerung. Problem ein bleibt aber weitherhin bestehen.

Wieso nicht mit zahlen arbeiten?
Es können mehrere Messungen gemacht werden, die gelöschten Spüalten müssen nicht immer die angegeben zahlen sein.

Danke für eure Hilfe.

Grüße
Thomas
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

in der ursprünglichen Frage geht es um Matrizen, hier um Tables. Wenn kein enger Bezug zum ursprünglichen Thema besteht, dann bitte ein neues aufmachen. So liest man alles durch nur um festzustellen, dass die Frage unabhängig von der ursprünglichen ist.

Teil 1 kannst du so umschreiben:
Code:
data_RH = tbl_P;
data_RH ([1,2,3,4,8,9],:) = [];

Allerdings würdest du damit Zeilen, nicht Spalten löschen.

zu Teil 2:
man kann auf die Zeilen/Spalten entweder mit Namen oder mit Zahlen zugreifen. Beides mischen geht nicht.

Ein reproduzierbares Beispiel ist grundsätzlich hilfreich.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
ThKo26
Forum-Century

Forum-Century


Beiträge: 184
Anmeldedatum: 21.09.17
Wohnort: ---
Version: 2015b
     Beitrag Verfasst am: 12.01.2018, 13:49     Titel:
  Antworten mit Zitat      
Fragestellung zu table wird hier weitergeführt.

http://www.gomatlab.de/viewtopic,p,181526.html#181526

Grüße
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 - 2024 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.