2012-12-21 37 views
6

Tôi muốn hình dung một ma trận dựa trên các giá trị chứa của nó. Tôi có một ô, trong đó có 11 ma trận, mỗi ma trận có 4 cột là x, y, z (tọa độ) và các giá trị của nó. Tôi muốn hình dung giá trị này, với vị trí x, y, z và xác định bản đồ màu của riêng tôi dựa trên các giá trị đó rồi hiển thị thanh màu. Tôi muốn sử dụng máy bay phản lực như bản đồ màu. Tôi muốn sử dụng màu xanh để mô tả giá trị tối đa và màu đỏ làm giá trị tối thiểu trên bản đồ màu. Các giá trị giữa các giá trị tối đa và tối thiểu có màu từ đỏ đến xanh dương.Hiển thị các giá trị từ ma trận trong một bản đồ màu tùy chỉnh (Matlab)

Đây là mã mà tôi đã cố gắng:

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 

Trong những mã trên, những gì tôi làm là hình dung ra giá trị trên cột thứ 4 từ mỗi ma trận sau đó tôi đã thực hiện một điều kiện là nếu giá trị là giữa 0-2, tôi đã cho màu đỏ, và khi nó nằm giữa giá trị 2 cực đại của cột thứ 4, tôi đã cho màu xanh.

Bây giờ, tôi cần hiển thị từng giá trị từ cột thứ 4 từ mỗi ma trận trong máy bay phản lực colormap mà không có bất kỳ điều kiện nào như thế.

Trả lời

1

Các dễ nhất là nên sử dụng scatter3:

%# 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

Nó hoạt động! Cảm ơn bạn rất nhiều :). Nhưng tôi vẫn còn một câu hỏi nữa. Nếu tôi muốn hiển thị nó dưới dạng một dòng hoặc sử dụng dấu gạch ngang thay vì dấu hoa thị (*) –

+0

Trong trường hợp đó, bạn có thể muốn tải xuống và sử dụng [cline] (http://www.mathworks.com/matlabcentral/fileexchange/8597) từ Trao đổi tệp Matlab. Ngoài ra, nếu bạn thấy câu trả lời của tôi hữu ích, hãy cân nhắc việc upvoting và/hoặc chấp nhận nó. – Jonas

+0

Ồ tôi xin lỗi, tôi chấp nhận câu trả lời của bạn và upvoting nó. Cảm ơn bạn rất nhiều. Oh mà cline, tôi đã cố gắng đó quá nhưng phương pháp mà bạn đã cho tôi (scatter3) hoạt động tốt hơn so với các cline. Tôi không thể tải lên các hình ảnh kết quả ở đây, nhưng tôi thích phương pháp của bạn. Cảm ơn bạn rất nhiều :) –