如果我在matlab中有一个简单的数组,请说:
a = [0 1 2 3 4 5 6 0 0]
如何约束该数组中的值(例如,如果我希望最大值为1,那么要到达:
a = [0 1 1 1 1 1 1 0 0]
最简单,最有效的方法是什么?
答案 0 :(得分:6)
a(a>1) = 1;
这可以做你要求的......你可以按照相同的模式进行其他约束。
编辑:评论者是正确的,已修复。
答案 1 :(得分:3)
a > 0
或
min(a, 1)
(在Octave测试。)
答案 2 :(得分:2)
尝试:
arrayfun(@(x) min(1,x),a)
对于最大值并用最小值替换max(val,x)