Undefined function ‘a‘ for input arguments of type ‘double‘.
·
出现以上主要原因有以下两点:
1.先看看被调用的函数文件是否与当前执行文件在同一个文件夹下
如若二者不在同一文件夹下,调至同一文件夹下即可
如若在,请看2
2.看你的函数文件
可能是你的函数文件的输入的参数项不足导致的
eg:
clc;clear;
x=[...];a=[...];b=[...];
f=fun(x);
function y=fun(x)
y=0
for i=1:8
for j=1:12
y=x(i,j)+x(i,j)*a(i)*b(j);
end
end
end
以上代码看起来有问题没?
嗯,有问题!
函数fun的输入参数不足。
因为函数体内,数组a,以及数组b,也需要当作参数被传入。
如此一来,上述代码可修改为:
clc;clear;
x=[...];a=[...];b=[...];
f=fun(x,a,b);
function y=fun(x,a,b)
y=0
for i=1:8
for j=1:12
y=x(i,j)+x(i,j)*a(i)*b(j);
end
end
end
哦,对了,i,j,的取值均是随便取得。您可自行调整。
以上两点是我目前发现的,尤其第二个,网上找了老半天,都没有找到解决方案。
最终还是找了相关例子,才尝试修改代码,就改成功了
哎!修行不易!
更多推荐



所有评论(0)