如何从多个 3D 矩阵创建单元格值向量

如何从多个 3D 矩阵创建单元格值向量

我目前正在尝试在 matlab 中做一件事。情况很简单:我有大约 70 个大小相同的三维矩阵(192 x 192 x 30)。我需要获取的是从这些矩阵中相同索引的值创建的向量。为您提供一个简单的示例(使用二维矩阵)会更容易:

所需解决方案的简单示例

对于 70 个 3D 矩阵(大小:192x192x30),输出将是一个具有 70 列和 192x192x30 行的矩阵。我想知道最简单的解决方案,只使用矩阵,不使用 for 循环。70 个矩阵的最终解决方案将如下所示:

期望输出

感谢您提供的任何帮助。我知道 matlab 中的解决方案可能非常简单,但我在寻找它时遇到了问题。

问候!

答案1

好吧,我自己找到了一个解决方案。略有不同,但对于我的目的来说,它甚至更好,并使一些事情更简单。我只需要非负值。因此,我首先创建一个非零单元格的逻辑数组。

function output = createMatrixFromFrames(inputFrames, roiFrame)
numberOfFrames = length(inputFrames);
logicalRoiArray = roiFrame~=0;
output = inputFrames(1).img(logicalRoiArray)
for frameIndex = 2:numberOfFrames
    output = [output inputFrames(frameIndex).img(logicalRoiArray)];
end

相关内容