2016-10-24 48 views
0

我在Matlab中有一個名爲myVec的數組,我必須執行一個操作,如果數組包含至少一個1和一個0. 我不知道我該怎麼做,我試着用find但它不起作用。 這就是我需要的。檢查數組中的兩個值

if %myVec contains 0 && myVec contains 1 
    %Code A 
else 
    %Code B 
end 

我查了一下,如果你試圖例如find(myVec==0),並返回其履行聲明的位置,它可以被用來作爲一個布爾if find(myVec==0)但後來我嘗試if (find(myVec==0) && find(myVec==1))和下面的錯誤顯示Operands to the || and && operators must be convertible to logical scalar values.

謝謝大家。

+0

SO不是代碼寫入服務。你嘗試了什麼,爲什麼它沒有工作? – excaza

+0

@excaza我試圖解釋一些。 – Lopan

+0

'find'返回一個空向量,如果這裏沒有任何東西,你需要'isempty'函數或者'not'函數 – Trogdor

回答

2
if sum(myVec==1) && sum(myVec==0) 
    %Code A 
else 
    %Code B 
end 

% sum(myVec==1) counts the number of ones in myVec 
% sum(myVec==0) counts the number of zeros in myVec 
% if myVec is a matrix with more than one rows and columns, use myVec(:) instead 
+2

任何(myVec == 1)&&任何(myVec == 0)'可能工作得更快,並且它清楚地顯示了代碼的意圖 –

+0

@SomeGuy是的。 +1。 – rayryeng

+0

@SomeGuy同意了! –