Matlab 比较不同长度的向量

Matlab 比较不同长度的向量,matlab,Matlab,我试图比较两个大小不同的向量。例如,当我运行下面的代码时: A = [1 4 3 7 9]; B = [1 2 3 4 5 6 7 8 9]; myPadded = [A zeros(1,4)]; C = ismember(myPadded,B) 我得到以下输出: C = 1 1 1 1 1 0 0 0 0 但是,我希望输出能够反映比较值的位置,因此,我希望输出显示如下: C = 1 0 1 1 0 0 1 0 1 请,我需要一些帮助:)函数ismember(myPadded,B)返回

我试图比较两个大小不同的向量。例如,当我运行下面的代码时:

A = [1 4 3 7 9];
B = [1 2 3 4 5 6 7 8 9];

myPadded = [A zeros(1,4)];

C = ismember(myPadded,B)
我得到以下输出:

C = 1 1 1 1 1 0 0 0 0
但是,我希望输出能够反映比较值的位置,因此,我希望输出显示如下:

C = 1 0 1 1 0 0 1 0 1

请,我需要一些帮助:)

函数
ismember(myPadded,B)
返回一个与
myPadded
大小相同的向量,指示myPadded的第I个元素是否存在于B中


要得到您想要的,只需颠倒参数顺序:
ismember(B,myPadded)
函数
ismember(myPadded,B)
返回一个与
myPadded
大小相同的向量,指示myPadded的第i个元素是否存在于B中


要得到您想要的,只需颠倒参数顺序:
ismember(B,myPadded)

有2点。首先,您正在以错误的顺序写入
ismember
的输入。此外,您不需要增加矩阵。只要试一下
ismember(B,A)
,你就会得到你想要的。

有2分。首先,您正在以错误的顺序写入
ismember
的输入。此外,您不需要增加矩阵。只要试一下
ismember(B,A)
,你就会得到你想要的。

一个快速的方法就是使用逻辑索引。这仅在
A
中包含
B
的最后一位时有效

A = [1 4 3 7 9];
c(A) = 1; % or true.
这里的一个假设是,您希望将向量子索引为1:N,因此
B
始终是
B=1:N
。如果最后一个数字不是一个,这很容易修复。只需记住在完成后将所有内容恢复到以前的状态即可。不过要多加两排


此解决方案是一个处理非常常见问题的特例。

一种快速的方法是使用逻辑索引。这仅在
A
中包含
B
的最后一位时有效

A = [1 4 3 7 9];
c(A) = 1; % or true.
这里的一个假设是,您希望将向量子索引为1:N,因此
B
始终是
B=1:N
。如果最后一个数字不是一个,这很容易修复。只需记住在完成后将所有内容恢复到以前的状态即可。不过要多加两排


此解决方案是针对一个非常常见的问题的特例。

有人在这里犯了一个可怕的错误。这与直觉完全相反。冰激凌献给所有从未将这个比喻颠倒过来的人:)我尤其不这么认为。而是相当武断。然而,这就像在控制台中写“help ismember”一样简单:-)我正要评论说,您只需要
ismember(B,A)
,但是@erfan发布了他们的答案。这里有人犯了一个可怕的错误。这与直觉完全相反。冰激凌献给所有从未将这个比喻颠倒过来的人:)我尤其不这么认为。而是相当武断。然而,这就像在控制台中编写“HelpIsMember”一样简单:-)我正要评论说,您只需要
ismember(B,A)
,但是@erfan发布了他们的答案。