通过加载数据“MATLAB”创建矩阵矩阵

时间:2013-09-27 11:19:31

标签: matlab loading

我想制作一个带有文本文件加载数据的矩阵向量。

我正在使用cat

n : number of matrices.
p : number of columns of matrices.

每个矩阵有4行。 例如,我在一个文本文件中有1200个数字,而p是3,所以n=100。 怎么能成功?!

这就是我试图做的事情:

X = cat(n,[1...p; ; ; ],...,[ ; ; ; ]);

2 个答案:

答案 0 :(得分:0)

描述有点模糊,但我建议这样做:

  1. 将所有数据读入matlab(看起来你知道怎么做)
  2. 将所有内容放在一个大矩阵或向量中
  3. 只有将所有内容放在一起后,才能使用reshape命令
  4. 在您的情况下,您可能希望对第3步执行类似的操作:

    raw = rand(1200,1); %Assuming your data looks something like this
    X = reshape(raw,[],4,3);
    

    对于1200个值,这将给出100x4x3的答案。如果您像这样应用重塑,请确保它是4x3的很好的倍数。

    <强>更新

    显然这是提问者正在寻找的变体,一个4x3x100矩阵:

    X =reshape(r,4,3,100)
    

答案 1 :(得分:0)

如果你知道矩阵的数量(n),你可以将它存储到像这样的单元格数组中

myCellArray = cell(n,1);
for it = 1:n
    myCellArray{it} = (...) %Load matrix whatever how you do it (Load, fread,...)
end

或仅使用动态分配,但效率不高,

myArray = [];
myArray = [myArray newLoadArray];