Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 20:48   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 在MATLAB中如何执行具有多个变量的分段方程式?

我一直在尝试执行以下分段功能:

y(x,t) = { 0 (t - 5) < 0 { (t - 5)*(t - x) x < (t - 5) { (t + x^2) x >= (t - 5) 由于x = 0:.5:10和t = 0:.1:10,我似乎不明白如何绘制此函数的图形。我知道如何在没有t的情况下执行此操作,但是当包含t且与x相比间隔不同时,我迷路了。

谢谢,Y_Y



回答:

乘以真值通常是可行的,然后您只需将这些值相加即可:

y = @(x,t)( (t-5).*(tx).*(x=(t-5)) ); 由于笔记本电脑上没有MATLAB,我现在无法测试,但是它可以按照您希望的方式工作。

您的真正问题似乎与x和t的尺寸不同有关。可以使用meshgrid函数对其进行“修复”,该函数会创建两个用于多维函数的矩阵:

[X, T] = meshgrid([1:.5:10], [0:.1:10]); Z = y(X, T); % With y(x,t) as above Z现在是一个矩阵,其中包含不同x和t的y值。可以使用surf绘制为表面:

surf(X, T, Z);

更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 01:22


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.