有没有一种有效的方法来写分段函数?

4次浏览(最近30天)
你好,
我有一个很长的1 x 4000温度向量,a = [a1 a2 a3 a4 a5 a6 a7 ....a4000]。
我还有小时向量T = [t1 t2 t3 t4 t5 .....t4000]。A和T是已知的。
现在,我希望有一个楼梯功能,这样,
如果0<=t
如果T1 <=t
如果T2 <=t...
在我正在做的事情中,我曾经使用“分段”函数对少量的A和T进行测试(可能只有a1到a10)。我可以手动一个一个地写。现在,我需要用到真正的A,它很长。我不能再一个一个做了。我的问题是,有没有办法在给定a和T的情况下,构造一个分段阶梯函数。
请注意:
  1. 这个楼梯功能稍后将被输入到集成中。它必须是一个函数,这就是为什么我使用“分段”(它工作得很好)。换句话说,我并不只是为了情节而使用它。
  2. 老实说,我不知道这个分段函数是否允许我手动写那么多块到a4000。

接受的答案

明星黾
明星黾 2021年8月24日
条件语句wr。t。 “t” 需要稍微修改一下,有了这个改变,就可以工作了:
T1 = 5;
T2 = 7;
T3 = 15;
A1 = @(t) sint;
A2 = @(t) 5;
A3 = @(t) cost;
Func = @(t) a1(t)。*(0<=t & t
TV = linspace(-5,20);
数字
情节(电视,func(电视))
网格
注意: 而所有的 “一个” 值是函数 “t” 为了简单起见,它们可以是常量。

更多答案(1)

布鲁诺陈德良
布鲁诺陈德良 2021年8月24日
tempfun = @(x) interp1([0 T], A([1:end end]), x,“以前”);
Temp = tempfun(whatever_query_t);

标签

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!