matlab中的硬剪刀

时间:2013-12-12 18:57:15

标签: matlab

我目前正在尝试使用函数

在matlab中制作一个硬剪辑器
f(x)= -1 for x<=-1
       x for -1<x<1
       1 for x>=1

但我完全不知道如何做到这一点。我得到一个矢量X,它应该通过这个klipper ..

我应该写一些for循环,例如:

for n=1:length(x):
     y(n)=x(n)=x for -1<x<1 

或者我应该怎么做?真的很挣扎,提前谢谢!

1 个答案:

答案 0 :(得分:3)

有几种方法可以做到这一点。使用for循环:

y = x;
for i = 1:length(y)
    if y(i) > high_value
        y(i) = high_value;
    end
    if y(i) < low_value
        y(i) = low_value;
    end
end

使用布尔索引:

y = x;
y(y > high_value) = high_value;
y(y < low_value) = low_value;

矢量化单行:

y = max(low_value, min(high_value, x);