matlab - Matlab 中是否有内置函数来确定排列是偶数还是奇数?

标签 matlab permutation

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/

相关文章:

c - C 中 0..7 的排列

python - codesignal 上的逆排列错误解?

matlab - 一个定时器可以在另一个定时器的回调期间触发吗?

matlab - 创建范围内的随机数行向量且总和应等于 M

r - 如何在 R 中使用 Matlab 内置配色方案?

scala - Scala 中的整数分区

Python,排列到排列索引函数

r - 如何在 R 模型中生成变量的所有可能组合?

matlab - 如何使用 Matlab 的 polyfit 获得正确的曲线拟合?

matlab - FFT 后在时域中延迟具有频域中相位变化的信号