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

Einfügen eines Zeilenvektors in eine neue Matrix

 

Max963
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 14.02.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.02.2015, 14:02     Titel: Einfügen eines Zeilenvektors in eine neue Matrix
  Antworten mit Zitat      
Hallo zusammen,

ich habe folgende Frage:

------------------------------ 1 2000 40000
------------------------------ 3 3647 80000
Ich habe eine Matrix(A)= 2 2460 35160
------------------------------ 2 3406 40670
------------------------------ 1 5497 45612
------------------------------ 3 4687 12354
..... ......... .........

Nun untersuche ich alle Zeilen der Matrix entlang der ersten Spalte (A(:,1)).
Die untersuchung habe ich über eine for-schleife(ii wird hochgezählt) verwirklicht, nun will ich drei neue Matrizen erzeugen (B,C,D)

Die neuen Matrizen sollen die jeweiligen Zeilenvektoren enthalten und als Matrix dargestellt werden.

Bsp:

----1 2000 40000
B= 1 5497 45612
.... ....... ..........

C= 2 2460 35160
---- 2 3406 40670
.... ....... ..........
D=analog


Ich habe es versucht über einen Zähler k, den ich nach dem eintreffen des jeweiligen Falls um k=k+1 erhöhe.

Nun wollte ich zB die Matrix B erzeugen über den Befehl B=[k,A(ii)] durch die Erhöhung von k sollte dann die nächste Zeile B=[k+1,A(ii)] heißen.
Das hat leider nicht funktioniert. Da mir keine Matrix angezeigt wird, die ganze Zeilenvektoren enthält und das Element a11 ist k, obwohl ich mit k eigentlich nur die Zeile definieren wollte.

Könnt ihr mir weiterhelfen ?

Danke im Voraus;)

P.S. anbei liegt noch mein Ansatz als JPEG

Matlab.jpg
 Beschreibung:

Download
 Dateiname:  Matlab.jpg
 Dateigröße:  107.63 KB
 Heruntergeladen:  245 mal
Private Nachricht senden Benutzer-Profile anzeigen


Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 15.02.2015, 22:33     Titel: Re: Einfügen eines Zeilenvektors in eine neue Matrix
  Antworten mit Zitat      
Hallo Max,

Max963 hat Folgendes geschrieben:
Nun wollte ich zB die Matrix B erzeugen über den Befehl B=[k,A(ii)] durch die Erhöhung von k sollte dann die nächste Zeile B=[k+1,A(ii)] heißen.
Das hat leider nicht funktioniert. Da mir keine Matrix angezeigt wird, die ganze Zeilenvektoren enthält und das Element a11 ist k, obwohl ich mit k eigentlich nur die Zeile definieren wollte.

Du verwendest k hier nicht als Index, sondern erzeugst einen Zeilenvektor, der aus k gefolgt von A(ii) besteht. Im Getting Started der Matlab-Hilfe gibt es ua. ein Kapitel Array Indexing, das dürfte hilfreich sein.
So
Code:
B(k,:) = A(ii)
ist k ein Index (Zeile k, alle Spalten).


Ein Vorschlag,
Code:
A = [1 2000 40000;
    3 3647 80000;
    2 2460 35160;
    2 3406 40670;
    1 5497 45612;
    3 4687 12354
    1 2 3];

B = sortrows(A,1);  % sortieren nach 1. Spalte
idx = find(diff(B(:,1)));
s_idx = [1; idx+1];
e_idx = [idx; size(B,1)];

N = cell(size(s_idx));  % pre-allocate
for ii = 1:size(s_idx)
    %     hlp = B(s_idx(ii):e_idx(ii), : );
    %     hlp = sortrows(hlp,2);  % sortieren nach 2. Spalte (?)
    %     N{ii} = hlp;
    N{ii} = B(s_idx(ii):e_idx(ii), :);  % ein cell mit allen Zielmatrizen statt mehrerer Matrizen mit diversen Bezeichnern
end


Grüße,
Seban

PS. Stell dir vor, du möchtest hier jemandem helfen. Wäre es nicht hilfreich, wenn man den Code nicht abtippen bräuchte und Daten direkt in Matlab kopiert werden könnten?
_________________

Richtig fragen
Debugging
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.