gpt4 book ai didi

matlab - 向量化二元运算的串联

转载 作者:太空宇宙 更新时间:2023-11-03 20:26:40 27 4
gpt4 key购买 nike

假设我有一个元胞数组,它包含一堆逻辑矩阵,例如

matrices = 
[225x400 logical]
[225x400 logical]
....
[225x400 logical]

元胞数组可能包含数百个矩阵。

我想计算一个矩阵,它是对该矩阵进行二元运算串联的结果。

result = matrices{1} & matrices{2} & matrices{3} & ..., etc.

我的问题:是否可以在不循环的情况下执行此操作?如果是这样,将此计算 MATLAB 向量化有什么好处吗?

如果矩阵堆栈表示为 3D 数组(而不是元胞数组?),例如:

  Name                        Size                  

matrices 225x400x100

将这些类型的堆栈保存为元胞数组与 3D 矩阵相比有什么好处吗? (澄清一下,在最后一个示例中,我们将计算 100 矩阵的 AND,每个矩阵的大小为 225x400)。

PS:我对ANDXOROR 的解决方案很感兴趣

最佳答案

您不能对元胞数组进行矢量化计算。您必须将其转换为 3D 数组(使用 cell2mat),或者更好:预先分配一个 3D 数组。

然后,对于 225x400x100 的尺寸,您可以:

或:

any(matrices,3)

和:

all(matrices,3)

异或:

mod( sum(matrices, 3), 2)

元胞数组的好处是内存保存(例如,一旦您删除了一个元胞)。元胞数组稳定后,您应该将其转换为用于矢量化计算的矩阵,这比 Matlab 循环快得多。

关于matlab - 向量化二元运算的串联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7719248/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com