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

Wert in Matrix ersetzen

 

Dr.[Doktor]
Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 20.03.17
Wohnort: Dresden
Version: R2015b
     Beitrag Verfasst am: 20.03.2017, 16:12     Titel: Wert in Matrix ersetzen
  Antworten mit Zitat      
Liebes Forum,

ich würde liebend gerne mit nachfolgendem Befehl eine Schleife umgehen.
Leider passt irgendwas an meinem Qode nicht ...

p = 0;

k = 0;

y_koord_flanke (p+1,k+1) = (min (sy( : ))>y_koord_flanke (p+1,k+1))== min (sy( : ));

Und zwar möchte ich wenn der kleinste Wert von sy größer ist als der Wert an der Position (p+1,k+1) in der Matrix y_koord_flanke diesen gerne ersetzen.

Kann mir jemand auf die Sprünge helfen bitte ? Smile

Grüße
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 20.03.2017, 18:43     Titel:
  Antworten mit Zitat      
Hallo

meinst du so:
Code:

y_koord_flanke(min( sy( : ) ) > y_koord_flanke )= min( sy( : ) ) ;
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Dr.[Doktor]
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 20.03.17
Wohnort: Dresden
Version: R2015b
     Beitrag Verfasst am: 21.03.2017, 09:22     Titel:
  Antworten mit Zitat      
leider nein ...


y_koord_flanke ist eine Matrix mit der größe [p+1,k+1].

über die Steuerung der Variablen p und k möchte ich einen expliziten Punkt in der Matrix mit der Variablen sy vergleichen.

so wie du es beschrieben hast ist y_koord_flanke ja nur eine "normale Variable" mit der Größe [1,1]


kannst du mir da weiterhelfen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Dr.[Doktor]
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 20.03.17
Wohnort: Dresden
Version: R2015b
     Beitrag Verfasst am: 21.03.2017, 11:02     Titel:
  Antworten mit Zitat      
ich bekomme immer die Fehlermeldung:

Index exceeds matrix dimensions.


warum funktioniert das nicht wenn ich eine bestimmte Position der Matrix mit "y_koord_flanke (p+1,k+1)" abfrage.




habe das ganze jetzt versucht mit einer if Bedingung zu umgehen - dort bekomme ich aber auch die gleiche fehlermeldung ...

hier der Code

Code:
  if y_koord_flanke (p+1,k+1) < min (sy(:))
               
                [a,b] = min(sy(:));
       
                [zeile,spalte,matrix] = ind2sub(size(sy),b);
               
                y_koord_flanke (p+1,k+1) = Schnittbilder_z_koord(zeile,spalte,matrix);
               
                x_koord_flanke (p+1,k+1) = Schnittbilder_y_koord(zeile,spalte,matrix);
       
                z_koord_flanke (p+1,k+1) = Schnittbilder_x_koord(zeile,spalte,matrix);
               
            end
       



irgendwas stört an dem Ausdruck : y_koord_flanke (p+1,k+1)

was passt hier nicht?
Private Nachricht senden Benutzer-Profile anzeigen
 
Dr.[Doktor]
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 20.03.17
Wohnort: Dresden
Version: R2015b
     Beitrag Verfasst am: 21.03.2017, 11:04     Titel:
  Antworten mit Zitat      
nochmal der Code ohne die Smilies .. Razz


Code:
if y_koord_flanke (p+1,k+1) < min (sy( : ))
               
                [a,b] = min(sy( : ));
       
                [zeile,spalte,matrix] = ind2sub(size(sy),b);
               
                y_koord_flanke (p+1,k+1) = Schnittbilder_z_koord(zeile,spalte,matrix);
               
                x_koord_flanke (p+1,k+1) = Schnittbilder_y_koord(zeile,spalte,matrix);
       
                z_koord_flanke (p+1,k+1) = Schnittbilder_x_koord(zeile,spalte,matrix);
               
            end
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 21.03.2017, 14:04     Titel:
  Antworten mit Zitat      
Zitat:
nochmal der Code ohne die Smilies ...

Um Smileys im Code zu vermeiden bitte die CODE-Umgebung benutzen

Zitat:
ich bekomme immer die Fehlermeldung:

Index exceeds matrix dimensions.

Welchen maximalen Wert hat p und k? Wenn p und k der Matrix-Dimension entsprechen, dann Addition von Eins führt zum Indexübertritt der Matrixdimension
Also zumindest eine Abfrage für den Fall sollte hier Sinn machen. Oder y_koord_flanke muss entsprechend vorinitialisiert sein

Code:


if p < size(y_koord_flanke, 1) && k < size(y_koord_flanke, 2)
      if y_koord_flanke (p+1,k+1) < min (sy( : ))
               
                [a,b] = min(sy( : ));
       
                [zeile,spalte,matrix] = ind2sub(size(sy),b);
               
                y_koord_flanke (p+1,k+1) = Schnittbilder_z_koord(zeile,spalte,matrix);
               
                x_koord_flanke (p+1,k+1) = Schnittbilder_y_koord(zeile,spalte,matrix);
       
                z_koord_flanke (p+1,k+1) = Schnittbilder_x_koord(zeile,spalte,matrix);
               
            end
end
 



Also ich verstehe nicht, was hier genau abläuft. Da musst noch mehr was dazu sagen. Wie groß ist sy? Schnittbilder_z_koord ist 3-D oder?
Also ich fürchte es wird nicht in eine Zeile gehen., sondern die Schleife wird wohl gebraucht.
Ein lauffähiges Beispiel mit Pseudo-Werten wäre interessant. Kannst mit RAND dir entsprechend Matrizen ja erzeugen, und hier den Code dann posten
Private Nachricht senden Benutzer-Profile anzeigen
 
Dr.[Doktor]
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 28
Anmeldedatum: 20.03.17
Wohnort: Dresden
Version: R2015b
     Beitrag Verfasst am: 21.03.2017, 16:07     Titel:
  Antworten mit Zitat      
Danke dir Denny,

ja der Fehler lag bei der überschreitung der Matrix Dimension von p und k.

Cod wird nächstes mal mit der Code Funktion gepostet Cool

Einen schönen Abend !!
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.