2011-11-10 378 views
1

这是我的matlab问题。我需要编写一个matlab函数,将所有数据从struct数据类型复制到矩阵。问题是每个条目可以有不同的长度。所以我一直在做的是遍历所有这些条目,以便预先计算矩阵的最终大小。Matlab:调整矩阵大小

%Calculate final size of Matrix 
nFieldsY = length(CompleteData.Y); 
nFieldsX = length(CompleteData.X); 
maxRowNumber = 0; 
maxColNumber = nFieldsY + nFieldsX; 

for j = 1:nFieldsY 
    l_x = length (CompleteData.X(1,j).Data); 
    l_y = length (CompleteData.Y(1,j).Data); 
    compAr = [maxRowNumber l_x l_y]; 
    maxRowNumber = max(compAr); 
end 

ResultMatrix = zeros(maxRowNumber, maxColNumber); 

所以“ResultMatrix”表示可能存储的数据的最大值。现在我想替换矩阵的列m中的第一个n条目。列的其余部分仍应填充零。尽管我所有的努力,我得到“尺寸不匹配”的错误。

感谢任何帮助。由于

回答

3

像这样的事情

ResultMatrix(1:n,m) = n_entries 

其中n_entries是要放在列中的值的n x 1矩阵。

1:n挑选出的行1到的ResultMatrixnm拾取柱m

+0

非常感谢。正是我需要的:D – JonBlumfeld