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

Minimum in dynamischer Struktur finden

 

Lloyd Blankfein
Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 23.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.03.2012, 16:41     Titel: Minimum in dynamischer Struktur finden
  Antworten mit Zitat      
Hallo,

ich habe eine dynamische Struktur welche z.B. diese Gestalt annehmen kann: [1;2;0;5;6;0;7] oder:

val(:,:,1) =

133
133
120
133
108


val(:,:,2) =

0
0
120
133
0


val(:,:,3) =

0
0
120
101
0


val(:,:,4) =

0
0
120
133
0



Ich möchte nun auf den kleinsten Wert > 0 zugreifen, also auf 1 bzw. 101. Stellt Matlab hierfür einen Algorithmus bereit oder muss ich mir dies selber programmieren?

Vielen Dank für eure Hilfe!
Lloyd
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: 19.03.2012, 17:00     Titel:
  Antworten mit Zitat      
möchtest du den wert verändern oder ihn nur auslesen?
Code:
c=min(val(val>0))
Private Nachricht senden Benutzer-Profile anzeigen
 
Lloyd Blankfein
Themenstarter

Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 23.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.03.2012, 17:18     Titel:
  Antworten mit Zitat      
Danke für die schnelle Antwort!

"Erstmal nur auslesen!"

1.) Das bedingte globale Minimum ermitteln
2.) Dann alle Werte > 0 durch dieses Minimum ersetzen
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: 19.03.2012, 17:27     Titel:
  Antworten mit Zitat      
Code:
A(A>0)=min(A(A>0))
Private Nachricht senden Benutzer-Profile anzeigen
 
Lloyd Blankfein
Themenstarter

Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 23.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.03.2012, 17:30     Titel:
  Antworten mit Zitat      
Hallo,

bei dieser Struktur funktioniert deine Lösung leider nicht:
ans =

133


ans(:,:,1) =

133
133
120
133
108


ans(:,:,2) =

0
0
120
133
0


ans(:,:,3) =

0
0
120
133
0


ans(:,:,4) =

0
0
120
133
0


ans =

133
133
133
133


ans =

120


Hier erhalte ich diese Fehlermeldung: ??? Error using ==> gt
Too many input arguments.
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: 19.03.2012, 17:31     Titel:
  Antworten mit Zitat      
hmm weis nicht ob es gut ist irgendwas auf ans anzuwenden. speicher die variable lieber zwischen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Lloyd Blankfein
Themenstarter

Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 23.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.03.2012, 17:36     Titel:
  Antworten mit Zitat      
Nee, das mach ich auch nicht im code. Obiges Beispiel war nur eine Spielerei im Command Window.
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: 19.03.2012, 18:45     Titel:
  Antworten mit Zitat      
poste mal lauffähigen code der den auftretenden fehler reproduziert. dann kann ich vieleicht auch ne aussage treffen die nicht total geraten ist^^
Private Nachricht senden Benutzer-Profile anzeigen
 
Lloyd Blankfein
Themenstarter

Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 23.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.03.2012, 19:36     Titel:
  Antworten mit Zitat      
Hi,

im Anhang findest du die Struktur. Den Sourcecode darf ich nicht online stellen, außerdem ist das Ganze DB gestützt.

Von Interesse ist hier selectedModel->Simu_Indicator->simudatestart

simudatestart kann diese Gestalt annehmen: 1x1, mx1, mx1xn.
Simu_Indicator kann diese Gestalt annehmen: 1x1, 1xj

Aus simudatestart möchte ich den kleinsten Wert > 0 auslesen und dann alle Werte > 0 in simudatestart mit diesem Wert überschreiben.

matlab.zip
 Beschreibung:

Download
 Dateiname:  matlab.zip
 Dateigröße:  1.37 KB
 Heruntergeladen:  450 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Lloyd Blankfein
Themenstarter

Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 23.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.03.2012, 19:42     Titel:
  Antworten mit Zitat      
Im obigen Beitrag ist mir ein Fehler unterlaufen: Es heißt simurangestart, nicht simudatestart.
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: 19.03.2012, 22:16     Titel:
  Antworten mit Zitat      
das ist bei mir in matlab so leider nicht lauffähig. benutzt du spezielle toolboxen?
im notfall einfach den support von matlab kontaktieren. oder dein problem nochmal umfangreicher schildern. momentan fällt mir dazu nix ein.
Private Nachricht senden Benutzer-Profile anzeigen
 
Lloyd Blankfein
Themenstarter

Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 23.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.03.2012, 09:16     Titel:
  Antworten mit Zitat      
Zitat:
das ist bei mir in matlab so leider nicht lauffähig


Wie ist denn die Fehlermeldung?
Diese Struktur ist "Plain-Matlab" und sollte ohne toolboxen auskommen!
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.