【发布时间】:2014-06-07 06:34:28
【问题描述】:
我的代码的简化版本如下:
A = linspace(0,10,100);
threshold = 6.0;
我想在低于阈值的值处截断向量 A。
假设 A 中的值总是递增的,我怎样才能巧妙而高效地做到这一点?
目前我能想到的唯一方法是引入一个for循环并逐个检查每个元素,如果它的值高于阈值,然后将这个值分配给一个新数组。像这样的:
k=1;
for i = 1:numel(A)
if A(i) < threshold
elseif A(i) >= threshold
Atrunc(k,1) = A(i);
k=k+1;
end
end
然而这对我来说似乎不是很“好”,谁能提供更优化的代码...?
【问题讨论】:
-
使用这种矢量化形式 -
Atrunc = A(A>=threshold)
标签: matlab