我正在尝试将向量传递给函数,并通过分段函数计算向量。当我运行下面的代码时,我只返回一个数字而不是一个向量。有什么想法吗?
谢谢!
t[-5:1:50]
velocity(t)
function [v] = velocity( t )
%This function takes vector 't' and evaluates a velocity over a given
%piecewise function
if t>=0 & t<=8
v=10*t^2-5*t;
elseif t>=8 & t<=16
v=624-5*t;
elseif t>=16 & t<=26
v= 36*t+12*(t-16)^2;
elseif t>26
v=2136*exp(-0.1*(t-26));
else t<0
end
答案 0 :(得分:0)
当您将矢量提升到正方形时,您正在使用自身执行标量积。
将t^2
替换为t.^2
以获取元素操作符。
对(t-16).^2
执行相同操作。
所有其他操作符应自动落入元素明智的情况,但您可以在它们之前添加点以确保。
此外,您编写的条件适用于t
作为标量值。您可以通过执行以下操作获得研究效果:
而不是
if cond1:
v = something
elif cond2:
v = something_else
做
indices1 = (cond1) % where cond1 is t < 10 for example
indices2 = (cond2) % and cond2 is t >= 10
v[indices1] = something
v[indices2] = something_else
我希望你明白这一点。