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

Schnellerer Zugriff auf die Werte einer Matrix

 

stick_thai
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 25.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2011, 16:30     Titel: Schnellerer Zugriff auf die Werte einer Matrix
  Antworten mit Zitat      
Servus zusammen,

ich habe folgenden Falschenhals, den ich gerne beseitigen möchte. Es geht darum, dass ich ein Bild (also eine Matrix) habe, dass z.B. 160x160 Pixel groß ist (z.B. Variable Bild1). Dann habe ich eine Matrix, die aus Indexwerten besteht und mir beschreibt, wie ein zweites Bild (Variable Bild2) anhand dieser Indexwerte aussehen soll (z.B. Variable index).

Als Code würde das in etwa so aussehen:
Code:
Bild2 = Bild1(index)


Nun ist es aber so, dass Bild2 nicht die gleiche Dimension wie Bild1 haben wird, sondern eine dritte Dimension hinzukommt, so dass Bild2 dann z.B. 160x160x80 groß ist (, da auch index diese Dimension hat).

Das Problem ist hier, dass der Zugriff auf die Werte in Bild1 sehr langsam ist und ich frage mich, ob man das irgendwie optimieren kann.

Bin für jede Idee dankbar!
Gruß,
stick_thai
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 11.03.2011, 00:28     Titel: Re: Schnellerer Zugriff auf die Werte einer Matrix
  Antworten mit Zitat      
Hallo stick_thai,

Bitte poste den Code, der langsam ist. Für die Bilder wird RAND reichen. Ohne den Code zu sehen, läßt er sich kaum verbessern....

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
stick_thai
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 25.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.03.2011, 12:52     Titel:
  Antworten mit Zitat      
Servus Jan,

den Code habe ich schon gepostet. Aber hier gerne nochmals:

Code:
Bild2 = Bild1(index)


Gruß,
stick_thai
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.03.2011, 13:35     Titel:
  Antworten mit Zitat      
Hallo,

dein Beispielcode ist leider sehr allgemein gehalten. Wie sieht denn die Variable index typischerweise aus? Ein lauffähiges Beispiel hilft, um Probleme zu reproduzieren und Lösungen vorzuschlagen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 13.03.2011, 00:36     Titel:
  Antworten mit Zitat      
Hallo stick_thai,

Zitat:
Code:
Bild2 = Bild1(index)

Welche Dimension und Typ hat "index"? Es macht einen großen Unterschied, ob "index" ein LOGICAL, UINT8, DOUBLE, etc Array ist.

Ansich ist das Referenzieren per Index in Matlab meistens recht effizient. Bist Du sicher, dass dies der Bottleneck ist?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
stick_thai
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 25.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.03.2011, 12:02     Titel:
  Antworten mit Zitat      
Hallo zusammen,

danke schonmal für die Antworten. Die Dimension von index ist z.B. 3x25600x161. Der Datentyp ist uint16.

Viele Grüße,
stick_thai
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.