“var”以前用作变量--MatLab

时间:2017-02-09 22:36:17

标签: matlab

我不知道为什么它告诉我之前从未使用它时我曾用作变量。

这是我的代码:

price := 0;
temp := 0;

for i=1:m,
    price += -y(i)*log( sigmoid(theta'*X(i,:)) ) -(1-y(i))*log(1-sigmoid(theta'*X(i,:)) );  
end;

J = price / m;

for i=1:n,
    temp := 0;
    for i2=1:m,    
        temp += ( 1-sigmoid(theta'*X(i2,:)) - y(i2) ) * X(j,i2);   
    end;    
    grad(i) = temp;    
end;

错误在于:

'price += -y(i)*log( sigmoid(theta'*X(i,:)) ) -(1-y(i))*log(1-sigmoid(theta'*X(i,:)) );'

记录错误“price”以前用作变量,与此处用作函数或命令的名称相冲突。 有关详细信息,请参阅MATLAB文档中的“MATLAB如何识别命令语法”。

1 个答案:

答案 0 :(得分:2)

我猜在Matlab中没有像+=这样的东西。所以,你不能做到以下几点。

price += -y(i)*log(sigmoid(theta'*X(i,:))) - (1-y(i))*log(1-sigmoid(theta'*X(i,:)));

相反,您应该执行以下操作。

price = price + -y(i)*log(sigmoid(theta'*X(i,:))) -(1-y(i))*log(1-sigmoid(theta'*X(i,:)));

此外,根据Matlab语言不允许:=。也许,您的代码位于Mupad。检查this