假设我们有以下的矢量matlab
平等:检查矢量元素
v1=[2 2 2 2 2 2 2]
v2=[2 2 2 2 3 2 2]
我们如何检查的每个向量中的所有元素都等于或不?
EDIT(注)
我不询问两个向量相互比较,但每个矢量内的元件一起。例如,v1
具有彼此相等的所有元素,而v2
不是。
谢谢。
假设我们有以下的矢量matlab
平等:检查矢量元素
v1=[2 2 2 2 2 2 2]
v2=[2 2 2 2 3 2 2]
我们如何检查的每个向量中的所有元素都等于或不?
EDIT(注)
我不询问两个向量相互比较,但每个矢量内的元件一起。例如,v1
具有彼此相等的所有元素,而v2
不是。
谢谢。
length(unique(v1)) == 1
>> 1
length(unique(v2)) == 1
>> 0
要在这个例子中排除了一些,我不希望在这里包括,例如0:
v3=[2 2 2 2 2 2 2 0]
length(unique(v3(v3 ~= 0))) == 1
>> 1
感谢您的回复。当我想使用你建议的命令时,有没有办法在这里包含一个我不想包含的数字?比如说,我不想在这里包含'0',我该怎么办? – Simplicity
当然,我更新了答案。 –
@FranckDernoncourt'unique'在这里有点矫枉过正,不是吗? :) –
您可以比较元素方面是这样的:
v1 == v2
返回
[ 1 1 1 1 1 1 1 ]
然后使用all
函数返回true
如果所有元素都为真:
all(v1 == v2)
这不是关于比较两个向量。我的意思是比较每个向量的元素。谢谢 – Simplicity
我想这就是为什么总是在问题中显示所需输出更好的原因。 –
你可以检查vector中的所有元素是否都是相同的做
>> all(v1 == v1(1))
ans =
1
>> all(v2 == v2(1))
ans =
0
感谢您的回复。当我想使用你建议的命令时,有没有办法在这里包含一个我不想包含的数字?比如说,我不想在这里包含'0',我该怎么办? – Simplicity
http://www.mathworks.de/de/help /matlab/ref/isequal.html –
@ j.holetzeck。请参阅我的帖子编辑。我**不是**试图比较两个向量在一起,但向量的元素彼此。谢谢 – Simplicity
你是否考虑过所有元素都是NaN的情况? – Shai