m0_64945046 2021-12-08 10:27 采纳率: 100%
浏览 2368
已结题

Matlab 输入参数数目不足,怎么解决

function res = ComSimpson(f,n,a,b)
n=input('please input"n"=');
a=input('please input"a"=');
b=input('please input"b"=');
B=input('please input"梁的宽度B"=');
F=input('please input"集中力F"=');
E=input('please input"弹性模量E"=');

format long;
if b < a
c = b;
b = a;
a = c;
end
h = (b-a)/n;
d = f(a);
for i = a+h:h:b-h
d = d + (2 * f(i));
end
for i = a+h/2:h:b-h/2
d = d + (4 * f(i));
end
d=d+f(b);
res=(d * h / 6);
res=F*res/B/E;

function f=f(x)
f=1/(-0.5*x+1);
end

ComSimpson
please input"n"=20
please input"a"=800
please input"b"=0
please input"B"=10
please input"F"=300
please input"E"=50000
输入参数的数目不足。

出错 ComSimpson (第 16 行)
d = f(a);

  • 写回答

1条回答 默认 最新

  • smartisong 2021-12-08 11:05
    关注

    一个文件里面最好定义一个函数,文件名即为函数名;
    如果文件里有多个函数,直接使用函数是调取不到的,需要将函数句柄拿过来、类似声明之类的;
    上面的程序中,就是使用的时候,找不到函数f(),所以:

    n=input('please input"n"=');
    a=input('please input"a"=');
    b=input('please input"b"=');
    B=input('please input"梁的宽度B"=');
    F=input('please input"集中力F"=');
    E=input('please input"弹性模量E"=');

    f = @f; % 添加这句获取函数句柄

    format long;
    ...
    ...
    ...

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏

报告相同问题?

问题事件

  • 系统已结题 12月16日
  • 已采纳回答 12月8日
  • 创建了问题 12月8日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?