分配"解决"的许多值。结构到矩阵:MATLAB

时间:2017-06-30 07:59:14

标签: matlab matrix

我正在尝试在matlab中解决大型线性方程组(约3600个方程!)由于变量的数量太多,我必须在矩阵中定义它们。所以我用这段代码来定义变量:

A = sym('A',[60,60]);

它必须是60x60矩阵,因为变量对应于有限差分问题(即网格)。

在for循环中写入相应的方程后,我以这种方式使用solve函数:

mysol = solve(eq,A);

eq是方程矩阵。

我的问题是,当我尝试解决这个系统时,如MATLAB帮助所示,即写下这样的东西:

C(1,1) = mysol.A(1,1)

我收到错误消息:&#34; 引用不存在的字段&#39; <&#39; &#34;。但是,如果我写下这样的话:

C(1,1) = mysol.A1_1

然后它有效。

有谁知道如何解决这个问题?我不想为每个变量做这个!

1 个答案:

答案 0 :(得分:2)

您可以尝试动态访问结构中的字段,如下所示:

for ii = 1:60
    for jj = 1:60
        field = sprintf('A%d_%d', ii, jj);
        C(ii, jj) = mysol.(field);
    end
end