【发布时间】:2020-05-20 00:22:07
【问题描述】:
我可以在 MATLAB 的 n 维矩阵上使用 mldivide (\) 而不使用 for 循环吗?例如,如果我有X=rand (5,5,2,3,6) 和Y=[0;0;0;0;1];,我可以沿其他维度对每个 5*5 数组进行切片以针对Y 解决它吗?
【问题讨论】:
标签: matlab matrix multidimensional-array matrix-inverse
我可以在 MATLAB 的 n 维矩阵上使用 mldivide (\) 而不使用 for 循环吗?例如,如果我有X=rand (5,5,2,3,6) 和Y=[0;0;0;0;1];,我可以沿其他维度对每个 5*5 数组进行切片以针对Y 解决它吗?
【问题讨论】:
标签: matlab matrix multidimensional-array matrix-inverse
我在 Bruno Luong 的帮助下解决了这个问题,他的多重求解器找到了 here。考虑到前两个维度的大小相同,下面的代码可以解决任意数量的维度。
M=rand(5,5,2,3,6);
RHS=[0;0;0;0;1];
sx = size(M);
sy = size(RHS);
dx = ndims(M);
MSOL=MultiSolver(reshape(M,sx(1),sx(2),[]),RHS);
MSOL = reshape(MSOL, [sx(2) sy(2) sx(3:dx)]);
【讨论】: