我目前正在尝试使用函数
在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
或者我应该怎么做?真的很挣扎,提前谢谢!
答案 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);