1

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

我正在使用cat.

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

每个矩阵有 4 行。例如,我在一个文本文件中有 1200 个数字并且p是 3,所以n=100. 怎么可能做到?!

这就是我试图做的:

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

2 回答 2

0

描述有点模糊,但这是我的建议:

  1. 将所有数据读入matlab(看起来你知道怎么做)
  2. 将所有内容放在一个大矩阵或向量中
  3. 只有将所有内容放在一起后,才能使用reshape命令

在您的情况下,您可能希望对第 3 步执行类似的操作:

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

对于 1200 个值,这将为您提供 100x4x3 的答案。如果您像这样应用 reshape,请确保它是 4x3 的一个很好的倍数。

更新

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

X =reshape(r,4,3,100)
于 2013-09-27T12:49:44.727 回答
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];
于 2013-09-27T14:03:01.813 回答