首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Plot ramp函数

Plot ramp函数
EN

Stack Overflow用户
提问于 2014-11-06 12:20:13
回答 1查看 8.9K关注 0票数 0

我正在尝试在MATLAB中绘制一个斜坡函数。我有以下函数用于我的渐变:

代码语言:javascript
复制
function [ y ] = ramp(x)
    y=zeros(size(x));
    y(x>=0)=linspace(0,x(end),length(x(x>=0)))
end

但是,我希望它具有与我的步长函数类似的效果。

代码语言:javascript
复制
syms x
ezplot(5*heaviside(x-1), [-10, 10])

当我使用这段代码时:

代码语言:javascript
复制
 syms x
 ezplot(5*ramp(x-1), [-10, 10])

当我这样做(x-1)时,它似乎抛出了一个错误,这是不可能的,我可以要求一些修改吗?

代码语言:javascript
复制
Cannot prove '0 <= x - 1' literally. To test the statement mathematically,
use isAlways.
EN

回答 1

Stack Overflow用户

发布于 2015-01-14 01:51:47

您的阶跃函数图适用于符号变量x的函数。但是,按照您编写的方式,ramp是一个需要数值输入(x值的向量)的函数。这就是为什么您尝试将符号x传递给它失败的原因。下面是绘制此函数的正确方法:

代码语言:javascript
复制
x = linspace(-10,10,100);
plot(x, 5*ramp(x-1))

或者,您可以将ramp重写为符号变量的函数:

代码语言:javascript
复制
function  y  = symbramp(x)
    y = (x+abs(x))/2;
end

然后像你对Heaviside做的那样绘制它:

代码语言:javascript
复制
syms x
ezplot(5*symbramp(x-1), [-10,10])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26771666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档