QT_5.2_matlab组合多维数组

完整代码示例

以下是一个完整的代码示例,展示如何将多个测试数据拼接成一个四维数组:

% 示例测试数据
nn = 10; % 假设有10个测试样本
TestData = cell(nn, 6); % 创建一个包含10个样本的单元格数组,每个样本包含6个二维矩阵

% 生成一些随机数据作为示例
for k = 1:nn
    for j = 1:6
        TestData{k, j} = rand(28, 28); % 假设每个二维矩阵的大小为28x28
    end
end

% 初始化四维数组XTest
XTest = zeros(28, 28, 6, nn); % 假设每个样本有6个通道,每个通道大小为28x28

% 拼接测试数据
for k = 1:nn
    XTest(:,:,:,k) = cat(3, TestData{k,1}, TestData{k,2}, TestData{k,3},...
                            TestData{k,4}, TestData{k,5}, TestData{k,6});
end

% 打印结果的大小
disp(size(XTest)); % 应输出 [28, 28, 6, 10]

拼接测试数据

for k = 1:nn
    XTest(:,:,:,k) = cat(3, TestData{k,1}, TestData{k,2}, TestData{k,3},...
                            TestData{k,4}, TestData{k,5}, TestData{k,6});
end
  • for k = 1:nn:遍历所有测试数据。
  • cat(3, ...):沿第三维度拼接多个二维矩阵。
  • XTest(:,:,:,k):将拼接后的三维矩阵存储在四维数组XTest的第k个位置。

解释

  1. 生成示例测试数据

    • nn = 10;:假设有10个测试样本。
    • TestData = cell(nn, 6);:创建一个包含10个样本的单元格数组,每个样本包含6个二维矩阵。
    • 使用rand函数生成一些随机数据作为示例。
  2. 初始化四维数组XTest

    • XTest = zeros(28, 28, 6, nn);:初始化一个四维数组,假设每个样本有6个通道,每个通道的大小为28x28。
  3. 拼接测试数据

    • 使用for循环遍历所有测试样本。
    • 使用cat(3, ...)沿第三维度拼接多个二维矩阵。
    • 将拼接后的三维矩阵存储在四维数组XTest的第k个位置。
  4. 打印结果的大小

    • 使用disp(size(XTest))打印四维数组XTest的大小,应输出 [28, 28, 6, 10]
posted @ 2024-05-30 22:52  玩意  阅读(64)  评论(0)    收藏  举报