假設我們有以下的矢量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