2012-12-21 5 views
6

Ich möchte eine Matrix basierend auf den enthaltenen Werten visualisieren. Ich habe eine Zelle, die 11 Matrizen enthält, jede Matrix hat 4 Spalten, die x, y, z (die Koordinate) und ihre Werte sind. Ich möchte diesen Wert mit der Position x, y, z visualisieren und meine eigene Colormap basierend auf diesen Werten definieren und dann die Farbleiste anzeigen. Ich möchte Jet als Colormap verwenden. Ich möchte Blue verwenden, um den maximalen Wert und Red als den Minimalwert auf der Colormap zu beschreiben. Die Werte zwischen maximalen und minimalen Werten haben eine Farbe zwischen rot und blau.Anzeige von Werten aus einer Matrix in einer benutzerdefinierten Colormap (Matlab)

Dies ist der Code, den ich schon versucht:

figure; 
hold on 
for i=1:length(diameter_lca) 
    L2 = diameter_lca{i}; 
    dl1 = find(L2(:,4) > minimal_lca & L2(:,4)<2);%diameter 0-2 
    dl2 = find(L2(:,4) >= 2 & L2(:,4) <= maksimal_lca);%diameter>2-maksimal 
    x=L2(:,1); 
    y=L2(:,2); 
    z=L2(:,3); 
    plot3(y(dl1),x(dl1),z(dl1),'*','Color','r'); 
    plot3(y(dl2),x(dl2),z(dl2),'*','Color','b'); 
end 
daspect([0.488281 0.488281 0.625000]); 
view(3); axis tight 
camlight 

In diesen Code oben, was ich zu tun ist, um die Werte in der 4. Spalte aus jeder Matrix visualisieren dann machte ich einen Zustand, wenn der Wert ist zwischen 0-2 gab ich rot, und wenn es zwischen 2-maximalen Wert der 4. Spalte ist, gab ich blau.

Jetzt muss ich jeden Wert aus der 4. Spalte von jeder Matrix in Colormap Jet ohne eine solche Bedingung anzeigen.

Antwort

1

Die einfachste wäre scatter3 zu verwenden:

%# make jet colormap from red to blue 
cmap = flipud(jet(128)); 

%# plot values 
figure, 
scatter3(L(:,1),L(:,2),L(:,3),[],L(:,4),'marker','*') 

colormap(cmap) 
colorbar 
+0

Es funktioniert! Ich danke dir sehr :). Aber ich habe noch eine Frage. Was ist, wenn ich es als Zeile anzeigen oder statt asterisk (*) ein Bindestrich verwenden möchte? –

+0

In diesem Fall können Sie [cline] herunterladen und verwenden (http://www.mathworks.com/matlabcentral/fileexchange/8597) aus dem Matlab File Exchange. Wenn Sie meine Antwort hilfreich fanden, denken Sie bitte darüber nach, sie zu aktualisieren und/oder zu akzeptieren. – Jonas

+0

Oh es tut mir leid, ich akzeptiere deine Antwort und erhebe sie. Ich danke dir sehr. Oh, das habe ich auch versucht, aber die Methode, die du mir gegeben hast (Scatter3), funktioniert besser als die Cline. Ich konnte die Ergebnisbilder hier nicht hochladen, aber ich bevorzuge Ihre Methode. Ich danke dir sehr :) –