最近编写程序的时候遇见一个问题,如何对一个矩阵中属于不同范围的元素进行不同的操作?刚开始使用if--elseif--else来对自变量进行划分并对其进行不同的运算,但是发现结果是错误的,程序没有按照自己预想的那样运行。查阅一些资料后发现了一种方法,我觉得还是比较简单的,接下来演示一下。分段函数表达式如下:
我们使用分段函数,对矩阵中大于0的元素加1,对矩阵中小于等于0的元素减1。下面是代码及运行结果:
clear;
a=[-1 2;-3 4];
b=add(a);
function y=add(x)
y=(x+1).*(x>0)+(x-1).*(x<=0);
end
代码解释:输入为x,输出为y。(x>0)和(x<=0)用于划分自变量的范围。(x>0)是一个逻辑操作,如果条件成立,则(x>0)=1;否则(x>0)=0。比如说当x=-1时,(x>0)=0,(x<=0)=1,y=(x+1) .*0+(x-1).*1=-2。注意这里面是点成,千万不要记错!!!