如何在matlab定义函数中定义参数的数据类型

一个求解线性方程组的Jacobi迭代法函数function[x,k,flag,err]=Jocobi(A,b,delta,max1)%求解线性方程组的迭代法,其中%A为方... 一个求解线性方程组的Jacobi迭代法函数
function [x,k,flag,err]=Jocobi(A,b,delta,max1)
% 求解线性方程组的迭代法,其中
% A为方程组的系数矩阵
% b为方程组的右端项
% delta为精度要求,缺省值为1e-5
% max1为最大迭代次数,缺省值为100
% x为方程组的解
% k为迭代次数
% flag为指标变量 flag='OK!'表示迭代收敛到指标要求
% flag='fail!'表示迭代失败
if nargin<4 max1=100;end
if nargin<3 delta=1e-5;end
n=length(A);k=0;
x=zeros(n,1);y=zeros(n,1);flag='OK!';
while 1
for i=1:n
y(i)=b(i);
for j=1:n
if j~=i
y(i)=y(i)-A(i,j)*x(j);
end
end
if abs(A(i,j))<1e-10|k==max1
flag='Fail!';return;
end
y(i)=y(i)/A(i,i);
end
if norm(y-x,inf)<delta
break;
end
x=y;k=k+1;
end

输入A阵和b阵后调用函数提示没定义参数类型

A=[4 1 -1;1 -5 -1;2 -1 -6],b=[13 -8 -2]'
[x,k,flag]=Jacobi(A,b)
Undefined function or method 'Jacobi' for input arguments of type 'double'.

请高手解答谢谢,如果回答正确可追加分
展开
 我来答
匿名用户
2009-04-09
展开全部
出现这个错误可能是你的自定义函数并没有加入matlab默认的搜索范围
可以试试看
在主界面中 file->set path->add folder
将你存储这个函数的文件夹添加进去
再试试看调用这个函数
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
甘秀珍年燕
2019-01-15 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.3万
采纳率:35%
帮助的人:643万
展开全部
直接把f作为函数的参数既可以。
1、f.m
function
y
=
f(n)
y
=
n^2;end2、demo.m
function
y
=
demo(f)
y=f(40)/(f(30)-f(20))end3、在命令窗口调用:
>>
demo(@f)ans
=
3.2000
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式