使用“horzcat”出现错误连接数组的维度不一致

问题描述 投票:0回答:1

使用全矩阵求解方程值得注意的是,随着N的增加,全矩阵A的大小快速增长。我试图找到稀疏矩阵中最大数量的点 N 并使用如下方法,但使用“horzcat”时出现错误 连接数组的尺寸不一致。

N = 1000; h=0.25

虽然是真的

main_diag = (2/h^2) * ones(N-1, 1);
sub_diag = (-1/h^2) * ones(N-2, 1);
A = spdiags([sub_diag, main_diag, sub_diag], [-1, 0, 1], N-1, N-1);

try
    full(A);
catch
    N = N - 1; % Reduce N if an error occurs
    continue;
end

break;

结束

disp(['稀疏矩阵的最大 N: ' num2str(N)]);

arrays matlab matrix concatenation
1个回答
0
投票

这个问题只需调试代码即可解决。您应该自己动手,在引发错误的行上放置断点并分析尺寸。

通过这样做,值得注意的是,在

A = spdiags([sub_diag, main_diag, sub_diag], [-1, 0, 1], N-1, N-1);
行中,您正在尝试水平连接 3 个具有不同维度的向量。事实上:

  • sub_diag 的大小为 998x1
  • main_diag 的大小为 999x1

因此它们不能连接。

© www.soinside.com 2019 - 2024. All rights reserved.