2013-08-07 45 views
6

Tôi có nhiều ma trận có cùng kích thước và muốn so sánh chúng. Kết quả là tôi cần một ma trận mang lại cho tôi lớn nhất của 3 cho mọi giá trị.so sánh nhiều ma trận MATLAB

Tôi sẽ làm rõ ý tôi là ví dụ:

Tôi có 3 ma trận với dữ liệu của 3 người.

Tôi muốn so sánh 3 kết quả này và nhận ma trận.

Trong ma trận đó, mỗi ô/giá trị phải là tên của ma trận có giá trị cao nhất cho ô đó. Vì vậy, nếu trong 3 ma trận giá trị đầu tiên (1 colum, 1 hàng) là phù hợp 2, 5, 8 giá trị đầu tiên của ma trận kết quả phải là 3 (hoặc tên của ma trận 3).

Trả lời

0

chỉnh sửa Như tôi đã không biết gì về đối số thứ hai của max-chức năng, đây là những gì bạn không nên sử dụng:

Vâng, nhanh chóng & bẩn:

x=[2 5 8]; 
w=max(x) 
[~,loc] = ismember(w,x) 
+0

Câu hỏi đặt ra liên quan đến ma trận, không phải giá trị đơn –

+0

@LuisMendo chấp nhận và sửa chữa :) –

5

Nếu ba ma trận là A, B, C, hãy thực hiện việc này:

[~, M] = max(cat(3,A,B,C),[],3); 

Nó tạo ra một "ma trận" 3D và tối đa hóa trên chiều thứ ba.

+0

điều này mang lại cho tôi giá trị cao nhất, nhưng như tôi hiểu, anh ấy (hoặc cô ấy) đang yêu cầu vị trí ... –

+0

Đồng ý, điều này là sai vì nó đứng – Dan

+0

Rất tiếc. Bạn nói đúng, xấu của tôi. Đã sửa. Cảm ơn! –

2

CONCATENATE chúng trên chiều thứ 3, và việc sử dụng đầu ra thứ hai từ tối đa để có được chính xác những gì bạn muốn

A = rand(3,3); 
B = rand(3,3); 
C = rand(3,3); 

D = cat(3, A, B, C) 

[~, Solution] = max(D, [], 3) 

ví dụ:

D = 

ans(:,:,1) = 

    0.70101 0.31706 0.83874 
    0.89421 0.33783 0.55681 
    0.68520 0.11697 0.45631 

ans(:,:,2) = 

    0.268715 0.213200 0.124450 
    0.869847 0.999649 0.153353 
    0.345447 0.023523 0.338099 

ans(:,:,3) = 

    0.216665 0.297900 0.604734 
    0.103340 0.767206 0.660668 
    0.127052 0.430861 0.021584 

Solution = 

    1 1 1 
    1 2 3 
    1 3 1 
+0

ok cảm ơn đã làm việc :) – user2661122

+0

@ user2661122 không có vấn đề và chào mừng bạn đến với SO. Nếu câu trả lời đúng, bạn nên chấp nhận câu trả lời bằng cách nhấp vào đường viền của dấu tích ở phía trên bên trái của câu hỏi. Ngoài ra nếu bạn tìm thấy một câu trả lời hữu ích, bạn cũng có thể cung cấp cho nó một upvote bằng cách nhấp vào hình tam giác chỉ lên trên cũng ở phía trên bên trái. – Dan

Các vấn đề liên quan