2015-11-13 63 views
-1

在MATLAB中編寫函數時遇到一些困難。我想構建一個函數,將給定的排名轉換爲二元選擇矩陣。例如,當3個選項中的排序R(3,1,2)的排名二元選擇矩陣應該是從排名到二元選擇矩陣的函數編程

[0 1 0; 
0 0 0; 
1 1 0] 

因此,當元件i前進元件j,矩陣元件a(i,j)10否則。任何人都可以幫我創建這個功能嗎?

+0

我認爲你需要在你的你如何給定'是矩陣的解釋擴大[3,1,2]'。一點也不清楚。 – Dan

+0

這是一個例子,有3個選項被排名。選項3優於選項1和2,優先選項1優於2。我想用給定長度的類似排名N做到這一點。 – Laurence

+0

但是數字3,2,1如何成爲二進制矩陣?它是否與行有關?列?你需要正確解釋你的映射。 – Dan

回答

0

我不知道我理解的問題,但這似乎做你想要什麼:

r = [3 1 2]; %// ranking 
[~, s] = sort(r); 
M = bsxfun(@gt, s, s.'); 
0

你想要類似的東西。

B=zeros(length(R)); %create an nxn matrix 
for j=2:length(R) 
B(R(1:j-1), R(j))=1; 
end