matlab中使用分段函数对矩阵中的元素进行操作

        最近编写程序的时候遇见一个问题,如何对一个矩阵中属于不同范围的元素进行不同的操作?刚开始使用if--elseif--else来对自变量进行划分并对其进行不同的运算,但是发现结果是错误的,程序没有按照自己预想的那样运行。查阅一些资料后发现了一种方法,我觉得还是比较简单的,接下来演示一下。分段函数表达式如下:

                                                          y=\begin{cases} x+1,& \text{} x>0 \\ x-1, & \text{} x<= 0 \end{cases}

我们使用分段函数,对矩阵中大于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。注意这里面是点成,千万不要记错!!!                       

                                  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值