How can I get my script to run properly?
1 次查看(过去 30 天)
显示 更早的评论
I was initially having trouble with my function, but now since that is running okay, my script is not. It involves a for loop and I'm not sure what I'm doing wrong.
Here is my function file:
function v = piecewise_fun(t)
if 0 <= t & t < 8
v = (10.*t).^2 - (5.*t);
elseif 8 <= t & t < 16
v = 624 - 5.*t;
elseif 16 <= t & t < 26
v = 36.*t + 12.*(t-16).^2;
elseif t >= 26
v = 2136*exp(-0.1.*(t-26));
end
end
And here is what I have for my script file:
t = -5:50
hold on
for i =-5:t % I'm not sure if this is even right!?
v = piecewise_fun(t);
end
plot(v,t)
So, I get the following error:
Undefined function or variable 'v'. Error in piecewise_plot (line 6) plot(v,t)
0 个评论
采纳的回答
Image Analyst
2013-9-11
编辑:Image Analyst
2013-9-11
Not right. Try it this way, in an m-file called aaron.m:
function aaron
t = -5:50
for k = 1 : length(t)
v(k) = piecewise_fun(t(k));
end
plot(t, v, 'b*-', 'LineWidth', 2);
grid on;
xlabel('t', 'FontSize', 30);
ylabel('v', 'FontSize', 30);
title('v vs. t', 'FontSize', 30);
function v = piecewise_fun(t)
v = nan; % Initialize.
if 0 <= t && t < 8
v = (10.*t).^2 - (5.*t);
elseif 8 <= t && t < 16
v = 624 - 5.*t;
elseif 16 <= t && t < 26
v = 36.*t + 12.*(t-16).^2;
elseif t >= 26
v = 2136*exp(-0.1.*(t-26));
end
Both functions are in the same m-file, called aaron.m, or whatever you want just make sure the name is on the first function line.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!