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 zwischen Anfangs- und Endwerten zusammenfassen

 

Nadine82

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.05.2010, 15:41     Titel: Werte zwischen Anfangs- und Endwerten zusammenfassen
  Antworten mit Zitat      
Hallo liebe Programmierer,

Ich habe eine Frage zum Herausschreiben zwischen einem Anfangs und einem Endwert innerhalb einer Matrix.

Ich habe eine Matrix A [20 2]
Ich habe eine Liste mit Anfangswerten AW [ 6 2]
Ich habe eine Liste mit Endwerten EW [ 6 2]

Wie schaffe ich es nun dass Matlab innerhalb meiner Matrix A alle Werte zwischen Anfangswert und Endwert rauszieht und mir in eine neue Matrix B schreibt ?
Das Problem ist eigentlich simple denke ich, aber ich hab grad keinen Ansatz wie ich die Schleife hinbekomme, so dass Matlab genau das macht.
Bin für eure Hilfe dankbar.

Grüße Nadine


denny
Supporter

Supporter



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

vielleicht missverstehe ich dich, aber so wie jetzt steht, braucht man keine Schleife.
Sind es mehre Anfangswerte und Endwerte?
Code:


A   = rand(20, 2)
AW = [ 6 2]
EW = [ 6 2]

B  = A(AW(1,1):EW(1,1),AW(1,2):EW(1,2))
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Nadine82

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.05.2010, 18:06     Titel:
  Antworten mit Zitat      
Hallo, vielen Dank für die Antwort.

Ja es sind viele viele Anfangs- und Endwerte. D.h. ich brauche hier denke ich schon eine Schleife.
Frage nur wie mache ich das....

Grüße Nadine
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 20.05.2010, 18:34     Titel:
  Antworten mit Zitat      
Schleife zu bauen ist nicht schwer, mir ist einfach nicht klar, wie soll dann das Ergebnis aussehen? Bitte Beispiel machen, weil ich verstehen nicht wie deine Daten aussehen. Was bedeuten in AW/EW Erster Wert Zweiter Wert. Denn im Moment rate ich nur:
Code:

A   = rand(20, 2)
AW = [ 6 2; 7 2]
EW = [ 6 2; 7 2]


for   k= 1:size(AW,1)
  row_aw = AW(k,1);
  row_ew = EW(k,1);
  col_aw  = AW(k,2);
  col_ew  = EW(k,2);
  B(k)  = A(row_aw:row_ew, col_aw:col_ew)
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Nadine82

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2010, 09:03     Titel:
  Antworten mit Zitat      
Hallo denny,

also in A sind in der 1. Spalte X-Werte einer Funktion und in der 2. Spalte die Y-Werte dazu.

Bei AW sind in der 1. Spalte die Anfangs X-Werte mit dazugehöhrigen Y-Werten (2. Spalte).
EW enthält dementsprechend die Endwerte.

Das heißt Matlab soll folgendes machen:

In AW aktuelle Zeilemit dem Anfangswert nehmen , diesen in A suchen und bis zu EW (gleiche Zeile wie AW) die X- und Y-Werte rausziehen und in eine neue Matrix B schreiben.
Das ganze solange, bis die Liste der AW/EW abgearbeitet ist.

Ist das klarer geworden ? Sorry für die konfuse Erklärung.

Grüße Nadine.
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 21.05.2010, 11:06     Titel:
  Antworten mit Zitat      
Hallo Nadine

Meinst du so:
Code:

A     =  [1 1; 2 3; 2 4; 3 5; 6 2]
AW  =  [ 6 2; 2 3]
EW  =  [ 6 2; 5 4]

B= cell(size(AW,1),1);
for   k= 1:size(AW,1)
  x_aw = AW(k,1);
  x_ew = EW(k,1);
  y_aw = AW(k,2);
  y_ew = EW(k,2);
  B{k}  = A( x_aw <= A(:,1) & A(:,1) <= x_ew & y_aw <= A(:,2) & A(:,2) <= y_ew,:);
end
 
Res = vertcat(B{:})
 
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.