【发布时间】:2014-05-26 08:52:31
【问题描述】:
"编写一条 Matlab 指令,它将采用向量 x 并将其更改为 y,以便将大于 1 的 x 的任何元素设置为 y=1; 小于 x 的每个元素-1 设置为 y=-1; 并且对于 x 的元素 -1 和 +1 我们有 y=x。在 k 上测试它,其中 t=linspace(0,10,400) 和 x=2*sin(pi*t),和在同一轴上绘制 x 和 y。"
到目前为止,我已经让这段代码工作了:
t=linspace(0,10,400);
x=2*sin(pi*t);
y(x>1) = 1; y(x<-1) = -1; y(x>-1 & x<1) = 0;
hold on;
plot(x);
plot(y,'r')
legend('x','y')
但我相信有一种更简洁的方法来编写我的代码的第 3 行,这样它就不需要 3 个单独的语句,只需要 1 个。希望有人能提供帮助,谢谢!
【问题讨论】:
标签: matlab indexing logical-operators