matlab - MATLAB函数错误无解
问题描述
今天在我的 Uni 课程中,我遇到了一个问题,建议的解决方案就是这个(我做了些许修改)。但它比我的实际解决方案有更多错误,它有什么问题?
这是功能:
function result = fc(t, T)
f0= 50;
T=1/f0;
omega0= 2*pi*f0;
step = T/100;
t= -T : step : 2*T;
result = zeros(1, length(t) );
for index_t =1: length(t);
if mod( t (index_t), T ) < T/2;
result(index_t) = 1;
else
result(index_t) = -1;
end
end
a0over2 = 1/T * integral(@(t)fc(t, T), 0, T);
N=10;
a=zeros(1, N);
b=zeros(1, N);
for k=1:N
a(k) = 2/T* integral(@(t)fc(t, T) .*cos(k* omega0*t), 0,T);
b(k) = 2/T * integral(@(t)fc(t, T) .*sin(k* omega0*t), 0,T);
end
我得到的错误是:
Undefined function or variable 'fc'.
Error in asdadad>@(t)fc(t,T)
Error in integralCalc/iterateScalarValued (line 314)
fx = FUN(t);
Error in integralCalc/vadapt (line 132)
[q,errbnd] = iterateScalarValued(u,tinterval,pathlen);
Error in integralCalc (line 75)
[q,errbnd] = vadapt(@AtoBInvTransform,interval);
Error in integral (line 88)
Q = integralCalc(fun,a,b,opstruct);
Error in asdadad (line 17)
a0over2 = 1/T * integral(@(t)fc(t, T), 0, T);
我应该做些什么?
解决方案
这一切都保存在一个文件中吗?即,问题fc
似乎是未定义的。这是一条错误消息(未定义的函数),其中包含通过所有被调用的子例程的堆栈跟踪,最后在代码的第 17 行结束。保存fc.m
为单独的函数并将其他所有内容保存在脚本中(最好使用比 更合理的名称asdadad
)并且它应该运行。
推荐阅读
- java - Spring Boot - 避免控制器中的并发写访问
- cookies - 如何使用 Capacitor Browser 插件操作/清除 cookie
- c# - 将 ASP .Net Framework 中的页面模型添加到现有页面
- shell - Shell命令查找所有具有主要功能的C/C++文件?
- html - React Table 数据逻辑构建
- windows - 使用 Pester 检查 Windows 磁盘加密
- ios - 为什么当我向下滚动iOS(tableView内的collectionview)时取消选择单元格?
- c++ - 哪个合并排序实现是首选...为什么?
- karate - 我们如何在 karate-config.js 文件中加密密码?
- asp.net - 如何从 Kendo SiteFinity 模板渲染 React 组件