gpt4 book ai didi

matlab - matlab中如何检查数组的起始元素是否相同

转载 作者:行者123 更新时间:2023-12-03 03:53:42 25 4
gpt4 key购买 nike

我想看看一个数组是否以与另一个数组相同的元素开头,而不必编写一堆单独遍历每个元素的 for 循环。

例如,如果我有下面的数组

Array1 = [1 2 3 4]
Array2 = [1 2 3 4 5 3 2 5 7]

Array3 = [1 2 3 5]

然后将 Array1 与 Array2 进行比较将返回 true。将 Array3 与 Array2 进行比较将返回 false。

有什么快速简便的方法可以做到这一点吗?我不知道要比较的数组的长度。我要比较的元素数量等于最短向量的长度。

谢谢!

最佳答案

您可以使用 isequal 检查两个向量中的所有元素是否相同。要仅检查前 n 个元素,可以执行 Array(1:n),因此整个函数将如下所示:

Array1 = [1 2 3 4]
Array2 = [1 2 3 4 5 3 2 5 7]
Array3 = [1 2 3 5]

n = 4; % Compare the first n elements
isequal(Array1(1:n), Array2(1:n))
ans = 1

isequal(Array2(1:n), Array3(1:n))
ans = 0

如果您使用Array1(1:n) == Array2(1:n),您将得到分段比较结果1 1 1 1。当然,这意味着您也可以这样做:

all(Array1(1:n) == Array2(1:n))
ans = 1

all(Array2(1:n) == Array3(1:n))
ans = 0

如果您希望 n 成为最小向量中的元素数量(根据您的评论),如 ChrisBen解释一下这个问题,你可以这样解决:

isequal(Array1(min([numel(Array1) numel(Array2)])), Array2(min([numel(Array1) numel(Array2)])))

或者更干净一点:

n = min([numel(Array1) numel(Array2)])
isequal(Array1(1:n), Array2(1:n))

关于matlab - matlab中如何检查数组的起始元素是否相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24752063/

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