MATLAB Answers

Convert a structure array to a list

26 views (last 30 days)
Aleem Andrew
Aleem Andrew on 10 Mar 2021
Commented: Aleem Andrew on 11 Mar 2021
I am trying to convert a structure array into a list rather than a cell to be able to perform operations such as finding the inverse Laplace of each of the elements more easily as with the list x below.
syms s
x = [(11816914992063660*s)/(18014398509481984*s^2 + 3567972556901945); -(6638091741507548*s)/(4503599627370496*s^2 + 7002908864245409);...
(2661668130624680*s)/(2251799813685248*s^2 + 7311548066690791)];
ilaplace(x)
In the following code I want to find the inverse Laplace of each of the elements of the structure array sol.
syms s r1 r2 r3
r = [r1 r2 r3];
eqns = [r1*s^2 - 0.65597*s + 0.19806*r1 == 0.0, r2*s^2 + 1.474*s + 1.555*r2 == 0.0,...
r3*s^2 - 1.182*s + 3.247*r3 == 0.0];
sol = solve(eqns,r);
Converting sol to a cell array with struct2cell causes an error message if you type ilaplace(sol) to find the inverse Laplace of each element. Is there a way to convert the structure array sol to a list so this can be done?
  2 Comments
Aleem Andrew
Aleem Andrew on 11 Mar 2021
I meant a double type. I tried struct2cell(sol) and then ilaplace(sol) which led to an error message which would not happen if sol could be converted to a double.

Sign in to comment.

Accepted Answer

Jorg Woehl
Jorg Woehl on 11 Mar 2021
Edited: Jorg Woehl on 11 Mar 2021
c = struct2cell(sol);
ilaplace([c{:}].')

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!