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

来源:百度知道 编辑:UC知道 时间:2024/09/21 20:39:12
一个求解线性方程组的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]'

出现这个错误可能是你的自定义函数并没有加入matlab默认的搜索范围
可以试试看
在主界面中 file->set path->add folder
将你存储这个函数的文件夹添加进去
再试试看调用这个函数