【问题标题】:Store matrices in an array - MATLAB将矩阵存储在数组中 - MATLAB
【发布时间】:2021-08-28 11:50:51
【问题描述】:

我正在尝试将 2x2 矩阵存储在一个数组中,该数组将连接到特定大小的图像以进行进一步的图像处理。即:

pixx = 300; % x number of pixels;
pixy = 200; % y number of pixels;
sz=zeros(pixx,pixy,4,4);
s=reshape(sz,[pixx,pixy,[2 2],4]);

这就是我尝试用 2x2 矩阵填充数组的方式:

s(:,:,[],1)=[1 1; 1 1]; % **
s(:,:,[],2)=[2 2; 2 2];
s(:,:,[],3)=[3 3; 3 3];
s(:,:,[],4)=[4 4; 4 4];

双 ** 行产生错误:“下标分配维度不匹配。”

能否给我一个提示如何解决这个问题?

【问题讨论】:

    标签: arrays matlab image-processing matrix


    【解决方案1】:

    s(:,:,[],1) 选择零数组元素。

    如果您要使用s(:,:,:,:,1),那么您将为每个像素选择完整的矩阵,这当然比右侧的数组元素多得多。

    我认为这就是你想要做的:

    s = zeros(1,1,2,2,4);
    s(1,1,:,:,1) = [1 1; 1 1];
    s(1,1,:,:,2) = [2 2; 2 2];
    s(1,1,:,:,3) = [3 3; 3 3];
    s(1,1,:,:,4) = [4 4; 4 4];
    s = repmat(s,pixx,pixy,1,1,1);
    

    【讨论】:

    • 谢谢@CrisLuengo。这是问题的相关解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多