matlab ~~谢谢,帮我看一下

来源:百度知道 编辑:UC知道 时间:2024/05/29 08:54:10
d=300:100:1000;
h=[];
h=0.0075*(d.^(-4));
j=1:8;
z=5e-15;
p=5e-5;
k=randint(1,1,[1,8]);
format long;
p1=p-func1_1(p)/func1_1_1(p);运行到这里就出现错误,??? Undefined command/function 'h'.

Error in ==> func1_1 at 2
y=sum(p*h(1:j))+z;
Error in ==> Untitled7m at 14
p1=p-func1_1(p)/func1_1_1(p);

其中定义的功能函数如下:

function y=function1_1_(p)
y=h(1,k);

function y=func1_1(p)
y=sum(p*h(1:j))+z;

Matlab是边翻译边执行的程序语言,执行到以上程序的所在时发现h没有定义便终止了,事实上自定义的功能函数中还有k,j,z都是未定义的。或者在子函数中重新定义,或者用输入参数从主函数中传入程序才能顺利编译。
function y=function1_1_1(h,k)
y=h(1,k);
function y=func1_1(p,h,j,z)
y=sum(p*h(1:j))+z;

p1=p-func1_1(p,h,j,z)/func1_1_1(h,k);
这样改应该就没有问题了

y=sum(p*h(1:j))+z;
1:j??是不是这个错了

两个函数定义里面根本没有h的说明,所以无法识别