2015-12-01 154 views
0

我有我的cellarray輸出波紋管。Matlab濾波器cellarray?

a = {'100.000000', '23.860477', '23.924062', '41.759920', '46.911883', '48.074160'}; 

我想如果值大於75將保持與其餘部分將剝離

+0

你嘗試過什麼?如果是這樣,請告訴我們,以便我們可以幫助您,而不是通過向您提供代碼。謝謝! –

+0

是的,我嘗試了下面的代碼: a = cellfun(@(x)(x> = 75),a); 但以下數組發生使用cellfun在均勻輸出 非標量 錯誤,在索引1處,輸出1。 設置「UniformOutput」爲假。 我還檢查了我的varialble的類型和它的'單元' – AmitTank

+0

你需要單元格的內容保持字符串還是可以將它們轉換爲數字數據類型? – excaza

回答

2

這個真的很微不足道的篩選使用cellfun功能與條件本陣,可是我沒有找到重複的,給出了一個真正的兩岸向前的答案,所以我可能只是寫在這裏。

Indexes = find(arrayfun(@(idx) str2double(YourCell{idx}) > 75, 1:size(YourCell,2))); 
更快

或者我想這可能是更容易+做:

T = str2double(YourCell); 
Indexes = find(T > 75); 

的指標應允許您使用vertcathorzcat創建新的細胞/矩陣創建矩陣或細胞你想。

YourCell = { '1' '2' '3' '56' '76' '87'}

Indexes = 

5  6 
+0

@excaza真的,我犯了一個錯誤,因爲我沒有在我身邊的Matlab應用程序,我只是回答並忘記了。大小(YourCell,1)出現了另一個錯誤,我已經修復了這個錯誤。 – GameOfThrows

+0

@excaza謝謝你指出這些,我的錯誤。 – GameOfThrows