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

2D Vektor -> Matrix

 

magu_
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.11.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.12.2011, 09:21     Titel: 2D Vektor -> Matrix
  Antworten mit Zitat      
Hallo zusammen

Ich habe ein kleines Problem. Ich verwende ein Matlab um meine Daten darzustellen

dazu verwendete ich bis jetzt:
Code:


Ich plottete hierbei jeweils mehrere Datensätze übereinander. Nun sind es zuviele Datensätze und ich will etwas abstrahieren und erstelle mir eine Matrix bei der ich die der Häufigkeit jeweils eine Helligkeit zuweise und jedem Datensatz eine Farbe. Das ganze ist relativ simpel zu realisieren:

Code:

function out=Hysto(x,y,channel,res)
% Makes Histogramplot
% channel: [rbg channel]
% x,y - column input

%% Calculates Colormap
n=size(x,2);
color=zeros(1,1,3);
color(1,1,1)=channel(1);
color(1,1,2)=channel(2);
color(1,1,3)=channel(3);

%% transform
xscale=linspace(min(x),max(x),res);
yscale=linspace(min(y),max(y),res);
out=zeros(x_res,y_res,3);
for i=1:n
    [~,indx]=min(abs(x(i)-xscale));
    [~,indy]=min(abs(y(i)-yscale));
    out(indx,indy,:)=out(indx,indy,:)+color;
end
out=out/max(max(max(out)));
end
 


Jedoch ist dieser Code durch die For-Schleife unendlich langsam. Meine Frage ist nun, kennt ihr eine alternative dazu? Via Matrizen denke ich mal nicht, da Matlab sobald die Matrizen gross sind auch langsam wird. (~50k Datenpunkte & ich bin an 32 Bit gebunden)

So hoffe konnte mich einigermassen verständlich ausdrücken.
Gruss Magu_
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.12.2011, 09:26     Titel:
  Antworten mit Zitat      
Hallo,

zu Histogrammen gibt es fertige Funktionen:
hist, histc, hist3

Diese Funktionen dürften schneller sein als das, was du selber zusammengebastelt hast.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.12.2011, 08:48     Titel:
  Antworten mit Zitat      
Danke für die Hilfe, die Funktion ist ihrgendwie unter meinem Radar durch geflogen. Jetzt funktioniert es wunderbar und sogar einigermassen schnell.

Danke Magu_
 
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.