需要一些MATLAB幫助!MATLAB:搜索和計數(?)
我有一組1和0,我需要找到多少個1和多少個0。
(即,x = [1 1 0 0 0 0 0 1 0 0 1 1 ....])。我正在尋找一些搜索並計入內置函數,但是我沒有成功。
需要一些MATLAB幫助!MATLAB:搜索和計數(?)
我有一組1和0,我需要找到多少個1和多少個0。
(即,x = [1 1 0 0 0 0 0 1 0 0 1 1 ....])。我正在尋找一些搜索並計入內置函數,但是我沒有成功。
什麼內置sum
和length
功能,即
numOfOnes = sum(x);
numOfZeros = length(x)-numOfOnes;
這是假設你真的只在你的矢量0和1。如果你可以有不同的值,但是要算上0,只有1秒,你可以預處理載體和在邏輯向量計數1秒:
numOfOnes = sum(x==1);
numOfZeros = sum(x==0);
你可以做
onesInList = sum(x == 1);
zerosInList = sum(x == 0);
這擴展到你在列表中的任何值(即,如果你想找到所有的七項,你可以做sevensInList = sum(x == 7);
)。
-1,用這些名稱的變量掩蓋內建的「ones」和「zeros」函數...選擇更好的變量名稱!這幾乎和在for循環中使用「i」一樣糟糕,然後無法使用我來表示sqrt(-1)。 – 2010-04-09 07:32:55
@Daniel G:謝謝,投了票! – Arkapravo 2010-04-09 07:33:40
@Michael * doh!*對不起,還沒有編程MATLAB一段時間! – 2010-04-09 07:34:28
一個不錯的簡單方法是使用功能NNZ:
nOnes = nnz(x);
nZeroes = nnz(~x);
@groovingandi:謝謝! ....這就是如果一個人經常使用編程語言(腳本編程語言)會發生什麼......一個人忘了簡單和容易的MATLAB! ... :) – Arkapravo 2010-04-09 07:32:19