【问题标题】:Matlab undefined variableMatlab 未定义变量
【发布时间】:2015-03-28 04:50:46
【问题描述】:

假设我有以下代码:

[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之前定义的,为什么这不起作用?

谢谢!

【问题讨论】:

    标签: matlab


    【解决方案1】:

    这是因为您的函数 fit2 不知道变量 w1d1。每个函数都有自己的变量空间,其中包含输入参数,当然还有在函数内部定义的变量。函数fit2 没有任何输入,因此它不知道任何变量。为了使您的代码正常工作,您应该修改 fit2 以具有 2 个输入(您在此函数中使用):

    function[w2, d2] = fit2(w1,d1)
    w2 = w1+0.2;
    d2 = d1-0.1;
    

    并用它的输入参数调用它:

    [w2, d2]=fit2(w1,d1);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 2013-09-27
      • 1970-01-01
      • 2021-11-22
      • 2012-04-15
      • 2013-02-24
      • 1970-01-01
      相关资源
      最近更新 更多