Change the value of a state-space block matrix each iteration using set_param
3 views (last 30 days)
Show older comments
Rafaella Savva
on 9 Mar 2017
Answered: Gillian Rosen
on 15 Mar 2017
I want to write a for loop and each time only one element of the A matrix changes. I can set the A matrix of a state-space block in Simulink using set_param but the value argument only accepts matrices in the form '[a b;c d]'. I wrote this code but I get the error message:'Invalid setting in StateSpace block 'states' for parameter 'A''
i=5;
val = zeros(2,2);
val(1,1)=0;
val(1,2)=1;
val(2,1)=i;
val(2,2)=-2;
set_param('ESO_gui/states','A',val,'B','[1;0]','C','[1 0]','D','[0]')
0 Comments
Accepted Answer
Gillian Rosen
on 15 Mar 2017
Hi Rafaella,
I understand that you would like to set the value of a State-Space block's parameters using 'set_param', but that you are encountering an error when you try to do so.
As you mentioned, the 'set_param' function expects a string (in ' ' marks) as input for the value of A. You are encountering this error because your current input (the 'val' matrix) is not in string form. To convert 'val' from a matrix to a string, you can use the 'mat2str' function, as shown:
>> valString = mat2str(val)
You can then use this string for your input to 'set_param'. See the documentation for 'mat2str' for more information:
0 Comments
More Answers (0)
See Also
Categories
Find more on Block Libraries in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!