ich habe momentan das Problem, dass ich aus einer gegebenen Reihe von Vektoren (z.B: v=rand(1,3); ) die Farben der einzelnen Vektoren bestimmen will!
Geht das überhaupt oder kann ich die Farben nur festlegen?
Ich möchte die Vektoren als Wichtungsfunktionen einer x und y Koord. zuweisen und in deren Abhängigkeit ausgeben...
Hat da jemand eine Idee?
Danke schonmal im Vorraus...
das geht schon aber du must dir halt klar überlegen welche grenzen du setzt. wann ist es rot wann blau. das ganze kannst du dann mit if then abfragen oder logischer indizierung bearbeiten.
in deinem Vektor kann es keine Farben geben, also muss man Grauwerte colorieren. Das geht am einfachsten, wenn man dem Rotkanal alle Werte unter 0.33, dem Grünkanal alle Werte zwischen 0.33 + 0.66 und dem Blaukanal alle Werte zwischen 0.66 + 1 zuordnet. Dann über "cat" alle zu einem Farbbild zusammenfügen und mit imagesc ausgeben.
danke dir und Winkow für die schnelle Antwort!
Ich hab es probiert und bin am verzweifeln...
Wie kann ich die Farbkanäle definieren?
So wie ich bei der MatLab Hilfe verstanden habe kann ich das nur über das editieren der figure machen!?
Ich würde das und die Farbzuweisung gerne in einer Subroutine machen.
war aber nicht genau das was ich gesucht habe...
Habe es nun selber lösen können!
Da es eine Subroutine ist bekomme ich als Übergabewert eine Wichtungsmatrix mit double-Werten der Form (3xn). (im Bsp n=16)
Die Matrix habe ich dan in Vektoren der Form (3,1) zerlegt die jeweils eine bestimmte Farbe darstellen.
%% Darstellung eines 4x4 Netzes % jedem Kästchen des Netzes soll eine zufällige Farbe zugeordnet werden
anzahl=16; % Anzahl der Kästchen im Netz
W=rand(3,anzahl); % Wichtungsmatrix für die zufälligen Farben % jeder "Farbvektor" der Form (a b c) mit Elementwerten von 0-1
% Kantenlänge des Netzes
edgeLength = sqrt(anzahl); % gilt nur solange wie quadratischer Input in Anzahl... % mein Netz soll in dem Bsp die gleichen Kantenlängen haben
%% initialisieren des Netzes mit Nullen % Kantenlänge 4x4 % 3.Dimension der Matrix entspricht den Farbstufen RGB (rot, grün, blau) % 'uint8' legt einen 8Bit Datensatz fest (Zahlen von 0-255)
bildchen = zeros([edgeLength edgeLength 3],'uint8');
%% einsortieren der Farbvektoren ins Netz % mit temp wird jeder Farbvektor einzeln aus der Wichtungsmatrix % genommen und in das Datenformat uint8 gebracht for i=1:edgeLength
temp = W(:,(i-1)*edgeLength+1:i*edgeLength);
temp = uint8(round(temp*255));
for j=1:edgeLength
bildchen(i,j,:) = temp(:,j);
end
%% VISU
%%% For beautiful visualization JUST for DEBUGGING % festlegen des Ausgabebildes % Position in Zentimetern auf dem Bildschirm festlegen
grafik = figure('Units','centimeters','Position',[551010]);
% skalieren der Achsen % Achsen verknüpfen mit dem Ausgabebild, Einheiten auf Zentimeter skalieren % Ursprung der Achsen im Ausgabebild festlegen % Skalierung der Farben mit (min, max)Werten hier (0, 255) festlegen
axes00 = axes('Parent',grafik,...
'Units','centimeters',...
'Position',[1.01.08.08.0],'CLimMode','manual','CLim',[0255]);
%%% VISUALIZATION for DEBUGGING PURPOSE image(row,col,colormap) % Ausgabe des Farbnetzes im Ausgabebild imagesc(bildchen,...
'CDataMapping','direct','Parent',axes00);
axisimage;
gute Lösung! Es ist immer gut, wenn man sich informiert und dann doch seinen eigenen Weg geht!!!!
Ein schönes Wochenende und eine erfolgreiche Woche!
Einstellungen und Berechtigungen
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
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.