gpt4 book ai didi

matlab - Mathematica有没有等价于Matlab的 "unique"函数的函数

转载 作者:太空宇宙 更新时间:2023-11-03 19:28:10 29 4
gpt4 key购买 nike

是否有 Mathematica 函数提供与 MATLAB 中的 unique() 函数等效的结果?我意识到我可以使用 Union[] 函数来获取列表的唯一元素,但我想要一些等效于提供在输入之间映射的索引数组的函数的三结果版本数组和唯一值数组。

如果没有内置任何内容,是否可以在某处实现该功能?这里有人知道如何构建它吗?

最佳答案

您可以使用 Mathematica 的 Position[] 自己轻松构建类似的功能.例如。给定一个数字列表,您可以执行以下操作:

In[1] := A = {1, 5, 2, 3, 7, 3, 2, 8, 6, 5, 9, 2, 1};
In[2] := {#, Flatten[Position[A, #]]} & /@ Union[A]
Out[2]:= {{1, {1, 13}}, {2, {3, 7, 12}}, {3, {4, 6}}, {5, {2, 10}}, {6, {9}}, {7, {5}}, {8, {8}}, {9, {11}}}

获取唯一元素的列表以及它们在原始列表中出现位置的索引。精确复制 Matlab 的 Unique() 的功能, 特别是对于

[b,m,n] = unique(A)

你需要

b = Union[A];
m = Last[Position[A, #]] & /@ b // Flatten;
n = Position[b, #] & /@ A // Flatten;

现在提供所需的行为

In[1] := A[[#]] & /@ m == b
Out[1]:= True

In[2] := b[[#]] & /@ n == A
Out[2]:= True

关于matlab - Mathematica有没有等价于Matlab的 "unique"函数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2203737/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com