Variants of this question have been crossposted to Mathematics Stack Exchange and Computational Science Stack Exchange. Additional answers may be found at these other sites.
这个问题与在 Getting the mapping for a permutation in MATLAB 提出的问题有关.标题基本概括了所有内容。我想知道 Matlab 中是否有内置函数来确定向量表示的排列是偶数还是奇数。例如,[2 1 4 3 5] 是恒等排列 [1 2 3 4 5] 的偶数排列,因为从一个向量到另一个向量需要偶数次交换。这似乎是人们可能想要经常做的事情,并且可能有一个内置功能。人们已经在 Web 上发布了相当长的 Matlab 文件来实现这一点。如果我能让 Matlab 给我一个置换矩阵,那么我就可以取该矩阵的行列式,但我还没有弄清楚该怎么做,我也不知道是否有快速的方法.
最佳答案
我认为没有针对此的内置函数。但它有一个简单高效的解决方案: 您的符号应该是向量置换矩阵的决定因素。
a = [2 1 4 3 5];
I = speye(length(a));
sign = det(I(:,a));
关于matlab - Matlab 中是否有内置函数来确定排列是偶数还是奇数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16351039/