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

Matrizen besetzen, negative Indizes. Geht das besser?

 

Bernte
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 28.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2012, 14:52     Titel: Matrizen besetzen, negative Indizes. Geht das besser?
  Antworten mit Zitat      
Hallo Leute,

ich muss mittels Schleifen Matrizen besetzen. Die einzelnen Eintrage beschreiben die physikalische Wechselwirkung von jedem Element mit jedem. Logischerweise wechselwirkt das vierte Element nicht mit seinem sechsten Nachbarn links von ihm (sprich dem minus ersten Element). Ich frage mich, wie ich das möglichst effizient implementieren kann.

Meine jetzige Lösung: mittels try lasse ich die Versuche, auf negative Indices zuzugreifen, ins Leere laufen. Das sieht in etwa so aus:

Code:

for ii=1,10
  try, myArray(ii-4)=ii; end
end
 


Das funktioniert super. Dennoch diese Frage: Ich fühle mich, als hätte ich den try-Befehl missbraucht. Er dient doch eher dazu, unabsichtliche Fehler abzufangen.
Hat meine Methode Nachteile? Kann das bei großen Matrizen rechenaufwendig werden? Gibt es eine elegantere Methode, die ebenfalls ohne zig if-then-Abfragen auskommt?


Danke und Gruß, Bernte
Private Nachricht senden Benutzer-Profile anzeigen


rainer87
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 22.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2012, 16:02     Titel:
  Antworten mit Zitat      
also beim spontanen testen war es mit einer einfachen if abfrage schneller als mit try also

Code:

for ii=1,10
  if ii-4>0
     myArray(ii-4)=ii;
   end
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Bernte
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 28.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2012, 20:14     Titel:
  Antworten mit Zitat      
Ohja, tatsächlich, viel schneller. Auf die Idee, einfach mal die Zeit zu messen, hätt ich ja auch selbst mal kommen können...


Weiß vielleicht jemand eine alternative Methode, Matlab dazu zu bringen, Zugriffe auf negative Indices einfach zu ignorieren? Das würde meinen Code sehr viel einfacher machen als zig Fallunterscheidungen.
Private Nachricht senden Benutzer-Profile anzeigen
 
rainer87
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 22.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2012, 20:35     Titel:
  Antworten mit Zitat      
naja du könntest deine indizes vorher berechnen und nur diese in die for schleife geben, ist halt nur die frage wie lange das dauert.
weiß da gerade nur nicht mehr zu sagen. mir würde etwas mehr beispiel daten vielleicht helfen einfallsreicher zu werden
Private Nachricht senden Benutzer-Profile anzeigen
 
Bernte
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 28.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2012, 20:57     Titel:
  Antworten mit Zitat      
Alles klar, ich muss mir wohl die Mühe machen und von Hand verhindern, dass er nicht außerhalb des Arrays schreibt. Ich dachte, vielleicht gibt es ja einen geschickten Trick den ich nicht kenne. Trotzdem vielen Dank rainer!
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 - 2025 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.