【问题标题】:Matlab function for many branches许多分支的Matlab函数
【发布时间】:2023-04-05 07:13:02
【问题描述】:

所以我创建了一个脚本,我想将它转换为一个函数 x(t),以便我可以将它用于其他实例。例如,我想使用函数,所以我可以得到 x(2t) 或 x(-t)。

我的脚本是:

t = 0:0.01:8;
x = zeros(size(t));
cond1 = t>=0 & t<1;
cond2 = t>=1 & t<3;
x(cond1) = t(cond1);
x(cond2) = 1/2*(3 - 2*t(cond2));
plot (t,x), grid

你能帮帮我吗?

【问题讨论】:

标签: matlab


【解决方案1】:

这是你在函数中的代码:

t = 0:0.01:8;

x = foo(2*t); % Call the function with 2*t
figure
plot (t,x), grid

x = foo(-t); % Call the function with -t
figure
plot (t,x), grid

% Function foo
function x = foo(t)
x = zeros(size(t));
cond1 = t>=0 & t<1;
cond2 = t>=1 & t<3;
x(cond1) = t(cond1);
x(cond2) = 1/2*(3 - 2*t(cond2));
end

【讨论】:

  • 问题是当你绘制 x(-t) 时它显示一条直线(这显然是错误的),而当你绘制 x(2*t) 时它又会产生错误的信号。跨度>
  • @stef:这是您的代码的逻辑。使用您的原始代码尝试t = t*2t = -t,您将得到相同的结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多