matlab如何让数组每个元素重复出现?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab如何让数组每个元素重复出现?相关的知识,希望对你有一定的参考价值。

unique函数用来去除矩阵a中重复的元素,
比如说a=[1,2,3,3,4],那么unique(a)=[1,2,3,4];
如果a=[1,2,3;3,4,5],那么unique(a)=[1,2,3,4,5];
unique(a,'rows')用来去除矩阵a中重复的行,
比如说a=[1,2,3;4,5,6;1,2,3],
那么unique(a,'rows')=[1,2,3;4,5,6];
综上,如果x=[1
1
1
2
2
2
3
3
3
3
3],
那么unique(x)=[1,2,3]。
参考技术A 办法如下:
a=[1,3,4,5,6,2,6,8,9]
b=unique(a)
c=zeros(size(b));
for
e=1:length(b);
c(e)=length(find(B==b(e)));
end
由于用到了for和unique,使用时效率可能很低!

如何过滤重复的元素,直到新元素出现

【中文标题】如何过滤重复的元素,直到新元素出现【英文标题】:How to filter duplicated elements until a new one comes 【发布时间】:2022-01-14 04:00:15 【问题描述】:

我想过滤掉重复的元素,直到新元素使用 Swift。我想对整个数组执行此操作。

示例:[1,1,1,2,2,1]

输出:[1,2,1]

【问题讨论】:

请向我们展示您最近尝试的代码以及您遇到的问题 实际上,我有一个领域数据库,我从中获取了数组,在这个数组中,我有重复的元素,我想过滤这些元素以在序列中具有唯一的元素。如果我在这里分享我的代码会更加混乱,我想在我的输出中包含我上面描述的内容。 【参考方案1】:

您可以使用reduce(into:_:) 这样做:

let array = [1,1,1,2,2,1]
let filtered = array.reduce(into: [Int]())  partialResult, current in
    guard let last = partialResult.last else  partialResult.append(current); return 
    if last != current 
        partialResult.append(current)
    

print(filtered)

我们遍历数组。 partialResult 是当前正在填充的新数组。 我们检查是否已经有一个初始值,否则我们添加它。 然后,我们将partialResult 的最后一个值与初始数组的当前迭代值进行比较,以决定是否将其附加到partialResult

一旦你理解了逻辑,它也可以写成:

let filtered2 = array.reduce(into: [Int]())  partialResult, current in
    if partialResult.last != current 
        partialResult.append(current)
    

print(filtered2)

【讨论】:

非常感谢您提供有用的答案,您能否也帮我解决这个问题,我正在使用领域数据库,当我想附加到部分结果时,我收到此错误“没有完全匹配在调用实例方法 'append'" let data = RealmManager().fetchLocations(by: uuid) let filtered2 = data.reduce(into: [ActivityModel]()) partialResult, current in if partialResult.last?.motionType != current.motionType partialResult.append(current) 这很奇怪。我试图重现,但不能有错误。你确定data[ActivityModel] 吗?如果是 [[ActivityModel]],则存在该错误,但if 行也存在另一个错误。

以上是关于matlab如何让数组每个元素重复出现?的主要内容,如果未能解决你的问题,请参考以下文章

如何在洗牌的连续整数数组中找到重复元素?

matlab中为啥用unique数组去掉重复元素后,还有相同的元素

如何找出数组中出现次数超过长度一半的元素

如何从多个数组中复制不重复的元素

matlab 定义数组问题?

2021-09-20:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O