【问题标题】:Can I use mldivide “\” on an nD matrix without using for loops in MATLAB?我可以在 nD 矩阵上使用 mldivide “\” 而不在 MATLAB 中使用 for 循环吗?
【发布时间】: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


    【解决方案1】:

    我在 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)]);
    

    【讨论】:

      猜你喜欢
      • 2013-12-21
      • 1970-01-01
      • 1970-01-01
      • 2014-11-11
      • 1970-01-01
      • 1970-01-01
      • 2021-11-08
      • 2015-05-10
      • 1970-01-01
      相关资源
      最近更新 更多