2014-06-24 114 views
0

我如何用0替換小於0.5的可變數據中的每個元素。在Matlab中替換變量的元素

我試過這個,但它不工作。

rng(110) 
data= rand(1, 1e8); 
tstart = tic; 
count = (data<0.5); 
replace = replacedata(data,count,0); 
telapsed = toc(tstart); 

回答

2

是什麼?replacedata這是使用邏輯索引像這樣很基本的MATLAB:

data(data < 0.5) = 0 

或者:

replace = data.*(data < 0.5) %// This only works because you are replacing the value with 0 as Matlab automatically casts logical matrices to doubles when using arithmetic. 
2

方法replacedatadataset變量。您的data矩陣是使用rand創建的標準Matlab矩陣。因此replacedata函數不能與它一起使用。

它可以創建使用mat2dataset您的矩陣dataset類型的變量,但丹他的回答解釋說,這是簡單的使用邏輯索引。