在 matlab 中是否有一种有效的方法来解决这个特定问题。
我正在尝试映射此矩阵或可能的数组 BeansRice(见下文)
Beans={0:1,0:1,0:2,0:2,0:2,0:2,0:1,0:1,0:2,0:2}
[a b c d e f g h i j ] = ndgrid(Beans{:})
BeansRice = [a(:) b(:) c(:) d(:) e(:) f(:) g(:) h(:) i(:) j(:)]
进入矩阵/数组BR(见下文)
BR=[abc, de, fg, hij];
如果 a、b 和 c 列的值均为 0(关系偏好),则我偏好 c>b>a。如果所有列 a、b 和 c 的值都为 1(无偏好),则 BR(1)=1。如果 a 和 b 列的值为 0,c 列的值为 2,则 BR(1)=2。如果 a 和 b 列的值为 1,c 列的值为 2,则 BR(1)=1。
我有一个带有索引的 if 函数,但我在想是否可以改进它,使用矩阵中值的等级/顺序来打破平局。寻找一个更有效的过程,因为这只是一个大问题的一个子问题。