首页 > 解决方案 > cell2mat 产生错误的输出大小

问题描述

我有一个大小为32x32的单元格矩阵,其中每个单元格都是一个8x8矩阵,所有值都是浮点数。我对每个8x8单元使用 DCT,然后将每个矩阵分配给另一个空单元矩阵。因此,新的单元矩阵是32x32正如预期的那样,当我使用cell2mat所述矩阵时,我得到的大小是 556x556而不是256x256

first_arr=mat2cell(inputArr,8*ones(1,size(img,1)/8),8*ones(1,size(img,2)/8),1);
c=cell(32);
for i=1:32
 for j=1:32
  temp=cell2mat(first_arr(i,j));
  temp1=dct(temp);
  for k=1:8
   for l=1:8
    if(some_condition)
     temp1(k,l)=0;
    endif
   endfor
  endfor
 inverted=idct(temp1);##inverted dct
 c(i,j)=inverted; 
 endfor
endfor
temp2=cell2mat(c);

执行后我有以下结果:

尺寸(c)=32x32
尺寸(temp2)=556x556

如果我使用cell2mat结果first_arr大小是256x256.

有人可以解释为什么会这样吗?

我尝试了一切,但似乎找不到解决方案。我在每一步都检查了每个矩阵的大小,一切都8x8符合预期

标签: octavecell-array

解决方案


推荐阅读