在matlab中约束值

时间:2012-02-27 21:02:09

标签: matlab constraints

如果我在matlab中有一个简单的数组,请说:

a = [0 1 2 3 4 5 6 0 0]

如何约束该数组中的值(例如,如果我希望最大值为1,那么要到达:

a = [0 1 1 1 1 1 1 0 0]

最简单,最有效的方法是什么?

3 个答案:

答案 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)