How to assign values to MV Targets of MPC object from cell array
조회 수: 3 (최근 30일)
이전 댓글 표시
I'm having a tough time trying to assign 3 values to the parameters of an mpc object.
Here is my MPC object with it's current values for the MV targets:
extractfield(mpcobj.MV, "Target")
ans =
1×3 cell array
{[38.6500]} {'nominal'} {'nominal'}
[mpcobj.MV.Target] = {99, 10, 'nominal'};
But I get this error message:
Error using mpc/subsasgn (line 511)
Scalar structure required for this assignment.
I tried this:
setfield(mpcobj.MV, "Target", {99, 10, 'nominal'});
but get the same error. I notice in the documentation there is an example like this:
MPCobj.DisturbanceVariables(1).ScaleFactor = 10;
MPCobj.DisturbanceVariables(2).ScaleFactor = 5;
MPCobj.DisturbanceVariables(3).ScaleFactor = 20;
Is there no way to assign these in one go (without a for loop)?
댓글 수: 0
채택된 답변
Emmanouil Tzorakoleftherakis
2023년 1월 25일
편집: Emmanouil Tzorakoleftherakis
2023년 1월 25일
You could specify values individually
mpcobj.MV(1).Target=99;
mpcobj.MV(2).Target=10;
or you could do it in one line as follows:
mpcobj.MV = struct(Target={99;10;'nominal'});
Hope that helps
댓글 수: 3
Emmanouil Tzorakoleftherakis
2023년 1월 25일
You don't really need a for loop for 3 values, but if you want to do it in one line, I guess the following should work:
mpcobj.MV = struct(Target={99;10;'nominal'});
I updated my answer as well
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Controller Creation에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!