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

Maximalwert in Cellarray bestimmen ?

 

Sebbl
Forum-Century

Forum-Century


Beiträge: 131
Anmeldedatum: 09.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2009, 13:25     Titel: Maximalwert in Cellarray bestimmen ?
  Antworten mit Zitat      
Hi,

ich habe ein (12x2 cell) Cell-Array (OH) erstellt. Nun möchte ich gern den Maximalwert der 3 Zellwerte OH{4,2}, OH{5,2} und OH{6,2} in einem Textfeld ausgeben....
Wie setze ich dies um ?

bisher versuche ich es mit

Code:

 set(handles.txt_OH_motor,'String',max(OH{4,2},OH{5,2},OH{6,2}));
 


in dem Textfeld txt_OH_motor auszugeben. So funktioniert es aber leider nicht.

Gruss Sebbl
Private Nachricht senden Benutzer-Profile anzeigen


derOli
Forum-Meister

Forum-Meister


Beiträge: 579
Anmeldedatum: 19.03.08
Wohnort: Leipzig
Version: 2010a
     Beitrag Verfasst am: 09.10.2009, 13:57     Titel:
  Antworten mit Zitat      
Hi,

is ja lustig, das Problem hatte ich auch gerade und hab es vor ungefähr 2 Minuten gelöst, so ist das manchmal:

Code:

A=cellfun(@max,OH(4:6,2))
 


Grüße,

der Oli
Private Nachricht senden Benutzer-Profile anzeigen
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 09.10.2009, 14:07     Titel:
  Antworten mit Zitat      
Hallo,
oder, wenn es nur die 3 sind:
Code:
set(handles.txt_OH_motor,'String',max([OH{4,2},OH{5,2},OH{6,2}]));


Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
Sebbl
Themenstarter

Forum-Century

Forum-Century


Beiträge: 131
Anmeldedatum: 09.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2009, 14:12     Titel:
  Antworten mit Zitat      
na das trifft sich ja mal gut Very Happy

Danke für deinen Lösungsansatz.
Leider funktioniert das Ganze bei mir nicht.
Ich habe mal zum Test OH{4,2}=1, OH{5,2}=2 und OH{6,2}=3 gesetzt.

mit

Code:

set(handles.txt_OH_motor,'String',cellfun(@max,OH(4:6,2)));
 


wird nun jedoch eine 1 im Textfeld abgebildet. (sollte ja eigentlich die 3 sein)
Woran kann das liegen ?

Gruß Sebbl
Private Nachricht senden Benutzer-Profile anzeigen
 
Sebbl
Themenstarter

Forum-Century

Forum-Century


Beiträge: 131
Anmeldedatum: 09.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2009, 14:15     Titel:
  Antworten mit Zitat      
oh,

ich habs grad selbst herausgefunden Very Happy
mit

Code:

 set(handles.txt_OH_motor,'String',max(cellfun(@max,OH(4:6,2))));
 


funktioniert es. Falls das zu umständlich ist, oder noch jemand eine bessere Lösung weiß, bitte mal posten.

Gruß Sebbl

Nachtrag :
@ Titus... sorry deinen Post hab ich gerade etwas überlesen.
Habe jedoch jetzt deinen Lösungsansatz übernommen.

Danke wiedermal für Eure HILFE Very Happy

Zuletzt bearbeitet von Sebbl am 09.10.2009, 14:20, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
derOli
Forum-Meister

Forum-Meister


Beiträge: 579
Anmeldedatum: 19.03.08
Wohnort: Leipzig
Version: 2010a
     Beitrag Verfasst am: 09.10.2009, 14:16     Titel:
  Antworten mit Zitat      
Hi, wertet nur den ersten aus, wenn du den max von allen haben möchtest musst du:

Code:


schreiben,

viele Grüße,

der Oli
Private Nachricht senden Benutzer-Profile anzeigen
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 09.10.2009, 14:16     Titel:
  Antworten mit Zitat      
Hallo,

das sind zwei verschiedene Sachen:
- die cellfun-Variante berechnet von jedem OH{i,j} den größten Wert, d.h., das A ist ein Vektor der Länge 3 (der erste Eintrag ist natürlich 1, und der wird nachher dargestellt)
- was Du suchst, ist von den OH-Einzel-Werten den größten. Das geht wie gesagt am einfachsten, in dem sie zu einem Vektor zusammengefasst werden, und von dem das Maximum genommen wird (siehe post oben)

Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 09.10.2009, 14:18     Titel:
  Antworten mit Zitat      
Hallo,

o.k., letzter Beitrag von mir zu dem Thema Wink

Das cellfun ist hier überflüssig, solange die OH{i,j} nur Skalare und keine Vektoren sind. Dann reicht ein einfaches
Code:
max([OH(4:6,2)])
aus (was das gleiche ist, was ich vorher zu Fuß hingeschrieben habe...

Titus
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.