替换Matlab中变量的元素

时间:2014-06-24 07:14:12

标签: matlab

如何用0替换变量数据中小于0.5的每个元素。

我尝试了这个,但它没有用。

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

2 个答案:

答案 0 :(得分: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.

答案 1 :(得分:2)

方法replacedata适用于dataset个变量。您的data矩阵是使用rand创建的标准Matlab矩阵。因此,replacedata功能无法与之一起使用。

可以使用mat2dataset从矩阵中创建dataset类型变量,但正如Dan在回答中所解释的那样,使用逻辑索引更为简单。