我正在尝试在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
然后它有效。
有谁知道如何解决这个问题?我不想为每个变量做这个!
答案 0 :(得分:2)
您可以尝试动态访问结构中的字段,如下所示:
for ii = 1:60
for jj = 1:60
field = sprintf('A%d_%d', ii, jj);
C(ii, jj) = mysol.(field);
end
end