在Matlab中转换数组的维数

时间:2013-10-13 14:20:54

标签: arrays matlab matrix cell video-processing

与我之前的问题一样:

  

我正在使用我从互联网上获得的这个功能:

>>[Y,U,V]=yuv_import('test.yuv',[176 144],150,0)
     

我得到了这个:[将YUV CIF 4:2:0视频文件转换为图像文件] [1]

     

打印出yuv文件test.yuv的Y,U和V组件。什么时候   我打字:

>>Y
     

显示:

Y = 

  Columns 1 through 5

    [144x176 double]    [144x176 double]    [144x176 double]    [144x176 double]    [144x176 double]

............... 

  Columns 146 through 150

    [144x176 double]    [144x176 double]    [144x176 double]    [144x176 double]    [144x176 double]
     

和..

>>size(Y)
     

显示:

ans =

     1   150
     

对U和V组件执行相同操作也会显示相同的结果。

     

还有..

>>Y(150)
     

显示:

ans = 

    [144x176 double]
     

我想要的是为具有尺寸的Y,U和V制作一个数组   [numberOfFrames height width]或[150 144 176]。我怎么能这样做?

     

[1]:http://www.mathworks.com/matlabcentral/fileexchange/6318

我使用

获得了解决方案
>>Y = cat(3, Y{:} );

我有一个

>>size(Y1)

ans =

144 176 150

现在,我想要的是将其转换回原始尺寸。我该怎么办?

1 个答案:

答案 0 :(得分:1)

使用mat2cell

>> Y = mat2cell( Y1, size(Y1,1), size(Y1,2), ones(1,size(Y1,3)) );