如何在matlab中使用多个变量执行分段方程?

时间:2010-12-08 00:21:02

标签: 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

1 个答案:

答案 0 :(得分:3)

乘以真值通常有效,然后您只需将这些值加在一起:

y = @(x,t)( (t-5).*(t-x).*(x<(t-5)) + (t+x.^2).*(x>=(t-5)) );

我现在无法对此进行测试,因为我的笔记本电脑上没有MATLAB,但它应该按您希望的方式工作。


您的真正问题似乎与xt具有不同维度的事实有关。这可以修复&#34;使用meshgrid函数,它创建两个矩阵用于多维函数:

[X, T] = meshgrid([1:.5:10], [0:.1:10]);
Z = y(X, T); % With y(x,t) as above

Z现在是一个矩阵,相应地包含yx的{​​{1}}值。可以使用t

将其绘制为曲面
surf