【问题标题】:Converting a 4d matrix into an array of 3d matrices in matlab在matlab中将4d矩阵转换为3d矩阵数组
【发布时间】:2017-03-27 01:49:24
【问题描述】:

我有一个 4d 维度的矩阵 (45x66x53x15),我想将它转换成一个 3d 矩阵的第 4 维数组,并且必须向每个矩阵添加一个字符,就像 (a for mat1 (45x66x53x1) , b 代表 mat2 (45x66x53x2),等等),我猜是一个结构数组,就像每个都有一个字符字段和一个 3d 矩阵。最好和最简单的方法是什么?

【问题讨论】:

  • 4d 数组已经是 3d 数组的数组。 A(:, :, :, 1) 是第一个数组,A(:, :, :, 2) 是第二个数组,依此类推。

标签: matlab


【解决方案1】:

一种简单的方法是使用 for 循环

A = rand(2,3,4,5); % Some example data

for idx = 1:size(A,4); % Loop along the 4th dimension
    B.(char(idx + 96)) = A(:,:,:,idx);
end

这给出了:

B = 
    a: [2x3x4 double]
    b: [2x3x4 double]
    c: [2x3x4 double]
    d: [2x3x4 double]
    e: [2x3x4 double]

char(idx + 96) 部分只是一种基于索引创建a, b, c ... 列表的方法。您可以轻松地将其替换为您自己的字段名称列表

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    • 2015-07-26
    • 2015-12-08
    • 1970-01-01
    相关资源
    最近更新 更多