Matlab 未定义变量
Matlab undefined variable
假设我有以下代码:
[w1, d1]=fit1;
for i = 1:10,
p = w1*d1+i;
C(i,:) = p;
end
[w2, d2]=fit2;
for i = 1:10,
q = w2*d2+i;
D(i,:) = q;
end
其中函数fit1
:
function[w1, d1] = fit1
w1 = rand(1);
d1 = rand(1);
和函数fit2
:
function[w2, d2] = fit2
w2 = w1+0.2;
d2 = d1-0.1;
我收到错误:Undefined function or variable 'w1'.
但是参数 w1
是在 fit2
被调用之前定义的,为什么这不起作用?
谢谢!
这是因为您的函数 fit2
不知道变量 w1
和 d1
。每个函数都有自己的变量 space,它由输入参数组成,当然还有在该函数内定义的变量。函数 fit2
没有任何输入,因此它不知道任何变量。为了使您的代码正常工作,您应该修改 fit2
以具有 2 个输入(您在该函数中使用):
function[w2, d2] = fit2(w1,d1)
w2 = w1+0.2;
d2 = d1-0.1;
并使用输入参数调用它:
[w2, d2]=fit2(w1,d1);
假设我有以下代码:
[w1, d1]=fit1;
for i = 1:10,
p = w1*d1+i;
C(i,:) = p;
end
[w2, d2]=fit2;
for i = 1:10,
q = w2*d2+i;
D(i,:) = q;
end
其中函数fit1
:
function[w1, d1] = fit1
w1 = rand(1);
d1 = rand(1);
和函数fit2
:
function[w2, d2] = fit2
w2 = w1+0.2;
d2 = d1-0.1;
我收到错误:Undefined function or variable 'w1'.
但是参数 w1
是在 fit2
被调用之前定义的,为什么这不起作用?
谢谢!
这是因为您的函数 fit2
不知道变量 w1
和 d1
。每个函数都有自己的变量 space,它由输入参数组成,当然还有在该函数内定义的变量。函数 fit2
没有任何输入,因此它不知道任何变量。为了使您的代码正常工作,您应该修改 fit2
以具有 2 个输入(您在该函数中使用):
function[w2, d2] = fit2(w1,d1)
w2 = w1+0.2;
d2 = d1-0.1;
并使用输入参数调用它:
[w2, d2]=fit2(w1,d1);