【问题标题】:MATLAB linear algebraMATLAB 线性代数
【发布时间】:2014-12-12 18:34:48
【问题描述】:

我有,例如:

p1 = [a;b];

p2 = [c;d];

T1 = [e,f;
      g,h];

T2 = [i,l;
      m,n];

和:

R = [T1*p1, T2*p2];

这给了我一个 2x2 矩阵: 我正在寻找一种方法:

R=T*P;

只需用 T1 和 T2 构建一个矩阵 T,用 p1 和 p2 构建一个矩阵 P。 对于线性代数,考虑到 T 只能是 4x2 或 2x4 而 P 只能是 2x2、1x4 或 4x1,这似乎是不可能的。我无法获得规则 NxP*PxM = NxM 的 2x2 矩阵。 有什么想法吗?

【问题讨论】:

  • 使用 p1p2(和零)创建一个 4x2 矩阵。

标签: matlab matrix linear-algebra matrix-multiplication


【解决方案1】:

您可以使用以下公式通过乘法而不是语言结构来执行连接:

.

所以你的矩阵P 需要用零填充。 除了使用zeros 函数,您可以使用blkdiag 函数,它在内部确定零填充:

P = blkdiag(p1,p2);
T = [T1,T2];
R = T*P;

但是,除非您希望对其执行此操作的向量数量会增加,否则我认为直接串联在清晰度和性能方面都是最好的。 如果预计这个数字会增长,那么我会在 p1p2、... 或 blkdiag 调用上使用 sparse,以便将不必要的乘法保持在最低限度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-22
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多