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

Probleme bei Randzellen

 

Kristin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2008, 15:51     Titel: Probleme bei Randzellen
  Antworten mit Zitat      
Hallo,
ich hoffe mir kann jemand helfen. Ich besitze nur die Grundkenntnisse und muss eine Art Spiel des Lebens mit anderen Spielregeln schreiben. Es geht darum das Zellen in einer Petrischale (NxM Matrix) ausgesetzt werden, ne bestimmte Wahrscheinlichkeit haben im nächsten Schritt noch zu leben, zu sterben oder sich zu teilen, dabei hat jeder der 8 Nachbarplätze die gleiche Wahrscheinlichkeit belegt zu werden. Nun liegt mein Problem darin, dass die Zellen am Rand der Matrix nur 5 und in den Ecken nur 3 Nachbarn haben und ich das ganze mit einer for-schleife geschrieben habe aber nicht weiß wie ich dem Programm sage, wenn es durch die for-Schleife irgendwo am Rand ist das es dann anders gemacht werden soll.
Gibt es sowas wie: ist Element von Matrix(:,end)?
In der Hilfe hab ich leider nichts gefunden...

Vielen Dank schonmal!


nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.318
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 17.09.2008, 16:09     Titel:
  Antworten mit Zitat      
Hi,

ich nehme mal an, Du hast zwei Schleifen und ein 8x8 Feld:
Code:
for zeilen=1:8
for spalten=1:8
...
end
end

Jetzt kannst Du mit
Code:
gucken, ob zeile oder spalte 1 oder 8 ist, dann wärst Du am Rand, wenn beides 1 oder 8 oder eines 1 und das andere 8 ist wärst Du in einer Ecke.
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
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: 17.09.2008, 16:09     Titel:
  Antworten mit Zitat      
Moin Kristin,

wie hast du denn die for-Schleife geschrieben?

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
 
steffi
Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 07.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2008, 16:13     Titel:
  Antworten mit Zitat      
Hallo,

weißt du die Größe deiner Matrix vorher? Ansonsten kannst du diese erst abfragen:

Code:
size(A,2) % das Komma 2 steht für Spalten, Komma 1 ergibt Zeilen


Dann kannst du deine Besondere Bedinung für 1 und jeweils das Ergebnis von size machen und lässt die Schleife nur von 2:size(A)-1 laufen! Zum Beispiel!

Interessant wäre dein Code, dann könnte man dir präziser helfen...
_________________

Wenn ich bei der Arbeit mit Computern eins gelernt habe dann das ich einem Computer nur soweit traue wie ich ihn werfen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
Kristin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2008, 16:22     Titel:
  Antworten mit Zitat      
hi nschlange,
ich habe unterschiedliche Ausgangsmöglichkeiten mit unterschiedlich angeordneten Zellen und unterschiedlich großen Matrizen, die sich der Benutzer(mein Prof) aussuchen kann. einmal eine 80x80, eine 100x100 Matrix und eine die der Benutzer selbst erstellen kann. deswegen versuche ich es so allgemein wie möglich zu halten. spätestens bei der selbst erstellten geht es ja nicht anders.
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 17.09.2008, 16:30     Titel:
  Antworten mit Zitat      
Moin,

dann programmiere es doch einfach allgemein Wink

Code:

goesse = 80; % oder 100, oder 1
for zeilen=1:groesse
    for spalten=1:groesse
        ...
        if eq(spalten,1) || eq(spalten,groesse)
            if eq(zeilen,1) || eq(zeilen,groesse)
                % eine der vier Ecken
            else
                % seitlicher Rand
            end
        elseif eq(zeilen,1) || eq(zeilen,groesse)
                % Rand oben/unten
        end
    end
end
 


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
 
Kristin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2008, 16:34     Titel:
  Antworten mit Zitat      
ich hab die sorgen, wenn ich meinen Code hierhereinstelle und mein Prof es sehen wurde, das er es für zuviel hilfe von außen ansieht. wir dürfen zwar hilfe erfragen usw. ist aber alles ein bisschen schwammig...
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 17.09.2008, 16:37     Titel:
  Antworten mit Zitat      
Hilft dir denn der Code von mir nicht weiter, oder hab ich was von deinem Problem falsch verstanden?

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
 
Kristin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2008, 17:37     Titel:
  Antworten mit Zitat      
moin alex,

doch es hilft mir auf jedenfall ein ganzes Stück weiter. das war nur ne anmerkung von den anderen zu meinem code...
aber zu deinem hätte ich auch nochmal ne frage! ich weiß da doch nicht ganz genau welche der ecken der Matrix es ist oder? weil dann kann ich meine bedingungen zur teilung doch nicht unterbringen, weil alle andere nachbarn haben...
oder versteh ich den code falsch? wie gesagt ich bin noch ein anfänger beim programmieren...

grüße kristin
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 17.09.2008, 17:50     Titel:
  Antworten mit Zitat      
Das stimmt natürlich...

Code:
goesse = 80; % oder 100, oder 1
for zeilen=1:groesse
    for spalten=1:groesse
        ...
        switch spalten
            case 1
                switch zeilen
                    case 1
                        % obere linke Ecke
                    case groesse
                        % untere linke Ecke
                    otherwise
                        % linker Rand
                end
            case groesse
                switch zeilen
                    case 1
                        % obere rechte Ecke
                    case groesse
                        % untere rechte Ecke
                    otherwise
                        % rechter Rand
                end
            otherwise
                switch zeilen
                    case 1
                        % oberer Rand
                    case groesse
                        % unterer Rand
                    otherwise
                        % alles andere
                end
        end
    end
end


Das sollte aber so stimmen - wenn ich nicht wieder irgendwas übersehen habe...

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
 
Kristin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2008, 18:06     Titel:
  Antworten mit Zitat      
Vielen lieben Dank!
 
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.