Matlab:调整矩阵大小

时间:2011-11-10 21:34:50

标签: math matlab matrix

这是我的matlab问题。我需要编写一个matlab函数,将struct数据类型中的所有数据复制到矩阵中。问题是每个条目可以有不同的长度。所以我到目前为止所做的是迭代所有这些条目,以便预先计算矩阵的最终大小。

%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 条目。列的其余部分仍应填充零。尽管我付出了很多努力,但我还是遇到了“尺寸不匹配”错误。

感谢任何帮助。感谢

1 个答案:

答案 0 :(得分:3)

像这样的东西

ResultMatrix(1:n,m) = n_entries

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

1:n选出1行至nResultMatrixm选择列m