【问题标题】:How to add value to matrix如何为矩阵添加值
【发布时间】:2021-10-13 11:16:12
【问题描述】:

我想为矩阵增加价值。 但是,我做不到。 我为强化学习制作了阶梯函数,并计算了名为 R 的值。 我想收集 R 的值并添加到名为 RR 的矩阵中。 但是,不会添加所有计算值。 这是因为它是在函数内部完成的吗?如果它不在函数中,它可以工作。 请大神告诉我解决方法。

% Define the step function
function [NextObservation, Reward, IsDone, LoggedSignals] = 
    myStepfunction(Action,LoggedSignals,SimplePendulum)

    % get the pre statement
    statePre = [-pi/2;0];
    statePre(1) = SimplePendulum.Theta;
    statePre(2) = SimplePendulum.AngularVelocity;
    
    IsDone = false;
   
    % updating states 
    SimplePendulum.pstep(Action);
    
    % get the statement after updating
    state = [-pi/2;0];                                  
    state(1) = SimplePendulum.Theta;               
    state(2) = SimplePendulum.AngularVelocity;      
 
    RR = []; 
    Ball_Target = 10;
    Ball_Distance = Ballfunction(SimplePendulum);
    R =  -abs(Ball_Distance -Ball_Target);  ← this the calculated value
    RR = [RR,R];     ← I want to add R to RR
    
    if (state(2) > 0) ||  (SimplePendulum.Y_Position < 0) 
        IsDone = true;
        [InitialObservation, LoggedSignal] = myResetFunction(SimplePendulum);
        LoggedSignal.State = [-pi/2 ; 0];
        InitialObservation = LoggedSignal.State;
        state = InitialObservation; 
        SimplePendulum.Theta =-pi/2;
        SimplePendulum.AngularVelocity = 0;
    end

    LoggedSignals.State = state;                  
    NextObservation = LoggedSignals.State;
    Reward =  +max(R);

end

【问题讨论】:

  • 要在函数之外更新RR,您需要将RR 传递给函数并再次退出。
  • 您正确地将R 添加到RR,但是当您添加RR = [] 时,您将RR 设置为一个空矩阵。

标签: list matlab matrix


【解决方案1】:

如果我理解正确,您正在尝试使用此功能更新RR,然后在循环外使用/查看它。这意味着您需要进行两次编辑:

a) 您需要将RR 传入和传出函数以更新它。您需要更改代码的第一行,如下所示,但您还需要更改调用函数的方式:

function [NextObservation, Reward, IsDone, LoggedSignals, RR] = 
    myStepfunction(Action,LoggedSignals,SimplePendulum, RR)

b) 当您这样做RR = [] 时,您会删除RR 的内容。要初始化RR,您需要将此行移至调用此函数的脚本,确保在调用此函数之前调用它。

【讨论】:

  • 这样的话,我必须在训练代码中设置RR的初始值。该初始值是空列表吗? ??
  • 是的,没错。我将编辑我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-14
  • 2018-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多