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

Cells(?) auswählen ..

 

Chrisch
Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 09.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2008, 21:39     Titel: Cells(?) auswählen ..
  Antworten mit Zitat      
Hallo,

ganz gut vorangekommen mit meinem Projekt.
Nun bin ich an folgendem Problem angelangt:

Ich habe eine Vielzahl an Matrizen C{z} erzeugt , wobei z=1...3 eine Art Nummerierung darstellt (ich muss wieder auf die Matrizen zugreifen können).
Aufgrund interner Operationen hat jede Matrix C eine "interne" Bewertung bekommen, einen "Bewertungvektor". Der Grund dass ich mit H und nicht mit C arbeite ist, dass die C-Matrizen jeweils hunderte von Werten enthalten und die H-Vektoren bestimmen mit ihrem Wert die Brauchbarkeit der C-MAtrizen.

Bsp.

zur Matrix C{1} gehört der H{1}=3
zu C{2} gehört H{2}=5
zu C{3} gehört H{3}=1

ich bin am grübeln!

denn nun möchte ich anhand der H-Vektoren meine C-Vektoren weiterverwenden.

1. ich möchte die H´s so sortieren, dass nur die "beste" C-Matrix ausgewählt und weiterverwendet wird. Also : wie sortiere ich H[z} nach Minimum oder Maximum ?

2. ich möchte zwei zufällige H{z} bestimmen, durch die ich dann auf meine C´s zugreifen kann.

Schwer zu beschreiben ..ich glaube mein Problem ist der Umgang mit diesen Zellen. Bin noch nicht so weit.

Achja, wer es genauer wissen möchte, es geht um Probleme mit Genetischen Algorithmen.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden


Chrisch
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 09.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2008, 21:44     Titel:
  Antworten mit Zitat      
Ok, etwas besser formuliert :

1. ich möchte eine Auswahl an H{z} -Vektoren der Größe nach sortieren, und dann möchte ich das z dieses Vektors irgendwie abspeichern. Möchte also genau wissen, welcher Vektor gemeint ist.

2. ich möchte 2 H{z}-Vektoren zufällig auswählen und die z´s (also die Vektor"nummern") ebenfalls abspeichern ...

liebe Grüße und danke für eure Mühe. ...
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
thirdeye

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2008, 22:05     Titel:
  Antworten mit Zitat      
hi,

also wenn ich deine Erläterung richtig verstehe, möchtest du dein "bestes" H finden und das dazugehörige z kennen?
das könntest du zB so machen:

Code:

[wert,z]=max(cell2mat(H))
 


z gibt dann die Position der gesuchten Zelle an
 
Chrisch
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 09.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2008, 22:37     Titel:
  Antworten mit Zitat      
danke danke !!

das ist ein erster Schritt in die richtige Richtung, gleich ma ausprobieren, dann gibs Rückmeldung !
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Chrisch
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 09.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2008, 04:31     Titel:
  Antworten mit Zitat      
Sehr gut !
Uff.

Eine Frage noch .. ich habe mir nun einen Vektor J voller Indizes erstellt.
Anhand dieser Indizes möchte ich nun in einer Nullmatrix Einsen an die richtigen Stellen verteilen.

ich habs erstmal mit repmat versucht *grübl* aber da tat sich nix.
Meine komplette Matrix wurde dabei mit Einsen gefüllt.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 01.07.2008, 08:04     Titel:
  Antworten mit Zitat      
Moin,

das müsste, wenn ich mich nicht irre, so gehen:
Code:

nullmatrix = zeros(3,4);
J = [2,7,8,12];
nullmatrix(J) = 1;
 


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
tompie
Forum-Guru

Forum-Guru


Beiträge: 260
Anmeldedatum: 19.09.07
Wohnort: München
Version: immer alles
     Beitrag Verfasst am: 01.07.2008, 11:00     Titel:
  Antworten mit Zitat      
Hallo,

gibt es einen speziellen Grund, warum Du cells und keine Matrizen verwendest? Deine Schreibweise C{1} usw. deutet in diese Richtung. Cells sind relativ unhandlich und sollten nur in Fällen verwendet werden, wo es wirklich notwendig ist.

Gruß tompie
Private Nachricht senden Benutzer-Profile anzeigen
 
Chrisch
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 09.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2008, 11:39     Titel:
  Antworten mit Zitat      
Die Notation C{n} verwende ich, da ich während des Programmablaufs mehre (je nach Anwenderwunsch Tausende) Matrizen erzeuge, auf die ich später noch zugreifen muss.
Jemand in diesem Forum gab mir als Antwort auf einen meiner früheren Posts
diesen Tipp mit den {}.
Das funktioniert bis jetzt fehlerfrei, auch wenn es mühsam ist ständig {} mitzuführen.

Ich verwende die Zahl innerhalb der geschweiften Klammern als "Index" für die gewünschte Matrix.
Aber vielleicht geht es auch einfacher ?

mfg



tolles Forum ! Ich lerne jeden Tag dazu hier
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
keloid
Forum-Century

Forum-Century


Beiträge: 216
Anmeldedatum: 04.10.07
Wohnort: ---
Version: 7.5.0.342 (R2007b)
     Beitrag Verfasst am: 01.07.2008, 11:58     Titel:
  Antworten mit Zitat      
Ich denke, der groesste Vorteil ist, dass die Matrizen in einem Cellarray nicht alle die gleiche Groesse haben muessen, das waere bei einer LxNxM-Matrix naemlich der Fall.
Private Nachricht senden Benutzer-Profile anzeigen
 
tompie
Forum-Guru

Forum-Guru


Beiträge: 260
Anmeldedatum: 19.09.07
Wohnort: München
Version: immer alles
     Beitrag Verfasst am: 01.07.2008, 13:21     Titel:
  Antworten mit Zitat      
Hallo,

ok, das habe ich jetzt verstanden. Aber warum ist der Bewertungsvektor H ebenfalls ein cell array? Hier würde ich einen ganz normalen double-Vektor erwarten, auf den man dann das gesamte Matlab-Funktionenarsenal loslassen kann.

Gruß tompie
Private Nachricht senden Benutzer-Profile anzeigen
 
keloid
Forum-Century

Forum-Century


Beiträge: 216
Anmeldedatum: 04.10.07
Wohnort: ---
Version: 7.5.0.342 (R2007b)
     Beitrag Verfasst am: 01.07.2008, 13:40     Titel:
  Antworten mit Zitat      
Das ist wohl wahr, ja.
Wenn ich das richtig verstanden habe, steht da pro Zelle nur eine Zahl drin, das sollte sich einfacher durch eine Matrix machen lassen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Chrisch
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 09.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2008, 14:11     Titel:
  Antworten mit Zitat      
Hallo !

Nein, der H-Vektor enthält annährend halb so viele Werte wie seine zugehörige Matrix. Die Bewertung errechnet sich etwas komplexer und nicht nur H{1}=Note1.. H{2}=Note4 oder sowas.
Deswegen benötige ich auch einen Index für den H-Vektor weil seine internen Werte ebenfalls verändert werden.

Wer sich mal mit dem n-Dame Problem Problem beschäftigt hat -- in meinem Fall ist es mit Genetischen Algorithem zu lösen.

Eine gute Matlab Übung.
Allerdings ein bischen zeitaufwändig.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Chrisch
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 09.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.07.2008, 18:22     Titel:
  Antworten mit Zitat      
da es eigentlich immer noch zur selben Thematik gehört, antworte ich fragenderweise mal auf mein eigenes Thema.

Ich habe immer noch eine ganze Reihe an Cells, welche numerische Werte beinhalten und nun möchte ich das beste und das zweitbeste auswählen Shocked

Das beste geht mit
Code:

ganz gut.
Wie greife ich auf den zweitbesten zu ?
Ich hatte überlegt den besten Wert abzuspeichern, aus dem Vorrat zu löschen und dann einfach nochmal die Abfrage zu machen
Code:


Gehts weniger umständlich ?

danke vielmals.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
tompie
Forum-Guru

Forum-Guru


Beiträge: 260
Anmeldedatum: 19.09.07
Wohnort: München
Version: immer alles
     Beitrag Verfasst am: 07.07.2008, 14:56     Titel:
  Antworten mit Zitat      
Hallo,

Du kannst das cell array sortieren, dann bekommst Du alle Werte geliefert (incl. Indizes im Originalfeld). In Deinem Fall also wie folgt:

Code:
[wert,z]=sort(cell2mat(Cell));
min1 = wert(1);
min2 = wert(2);


Gruß tompie
Private Nachricht senden Benutzer-Profile anzeigen
 
Chrisch
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 46
Anmeldedatum: 09.06.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2008, 16:04     Titel:
  Antworten mit Zitat      
Sehr gut !
Danke !
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.