【问题标题】:Convert Matlab grid to a vector将 Matlab 网格转换为向量
【发布时间】:2021-01-10 08:01:29
【问题描述】:

在 Matlab 中,我有尺寸长度为 n1、n2、n3、n4、n5 的 5D 网格 X。我将前三个维度点固定在 x1,x2,x3 并考虑 X(x1,x2,x3, , )。现在我想将其转换为 n4 乘以 n5 向量,以便我可以将其与另一个 n4 乘以 n5 向量相乘。我该怎么做?

或者,是否有一种直接的方法来进行这种乘法,而无需先编写将网格转换为向量的步骤?

【问题讨论】:

  • 元素 - 明智的乘法?

标签: arrays matlab vector


【解决方案1】:

如果这是逐元素乘法,并且说 Y 是 n4*n5 向量:

A=bsxfun(@times,reshape(X,n1,n2,n3,[]),permute(Y(:),[4,3,2,1])));

会给你这种乘法的结果,其中A 是一个长度为 n1,n2,n3,n4*n5 的 4D 数组。

函数reshape用于将X从5D转换为4D,函数permute用于将Y的信息“推”到第4维,以便使用@进行乘法运算987654328@.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2017-01-18
    • 2014-12-26
    相关资源
    最近更新 更多