Need to access the structure values in numerical form and store it in an array each time the loop runs

1 回表示 (過去 30 日間)
Hi all,
I am trying to access the structure values from the followign code and want to store it in the form of an array each time the loop runs. I have tried using stryct2cell and cell2mat but they give certain errors. I need the numerical values of x and y by solving the two equations.
Since I am very new to MATLAB programming, I do not much of an idea what does the structure hold in this case and how can we access the numerical values. Kindly help me.
for i = 1:127
syms x y
sol = solve([(1-x)*(1-exp(-y))+ A32T22_array(i)*(1-x)*exp(-y)+ T2T12_array(i) + R2_array(i) == 1, x + R1_array(i)*(1-x)*exp(-y) == R2_array(i), x>0, y>0], [x,y]);
R12T12_array(i) = solxy(1,1);
ad_array(i) = solxy(2,1);
end

採用された回答

darova
darova 2021 年 8 月 2 日
Make some modifications
An example
syms x y
sol = solve([5*x-y y-1])
sol = struct with fields:
x: [1×1 sym] y: [1×1 sym]
  3 件のコメント
darova
darova 2021 年 8 月 4 日
Looks like you have several roots
just type in the other line
sol.x
And see how many roots you have. Maybe you need something lke this:
R12T12_array = nan(127,5); % assuming max number of roots: 5
for i = 1:127
% code
n = numel(sol.x);
R12T12_array(i,1:n) = sol.x; % write roots
end
RAVI SINGH
RAVI SINGH 2021 年 8 月 5 日
@darova: thank you very much for your help.
Though there was a small mistake in one of the equations, however, what you suggested really helped. I also checked it for a different set of simpler equations to test it. Though I need to learn it much better, I understand a bit of it now, thanks to you.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

製品


リリース

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by