从排序到二元选择矩阵的函数编程

Function programming from a ranking to binary choice matrix

我在 MATLAB 中编写函数时遇到了一些困难。我想构建一个将给定排名转换为二元选择矩阵的函数。例如,当 3 个选项在 R(3,1,2) 中排名时,二元选择矩阵应该是

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

因此,当元素 i 继续元素 j 时,矩阵元素 a(i,j)1,否则为 0。谁能帮我创建这个功能吗?

你想要类似的东西。

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

我不确定我是否理解问题,但这似乎符合您的要求:

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