如何将同一文件的两个部分加载到两个不同的矩阵? (MATLAB)

时间:2012-06-05 16:55:59

标签: matlab file-io matrix

我有一个文件(file.csv)以下列格式填充整数:

1,2,3,4,5,6,7,8,9,100
2,5,1,3,4,6,7,8,10,200

我知道使用此代码:

load('FILE.csv')
x = FILE

x将是NxM矩阵,其中..

  • N是文本文件中的行数(在上面的例子中:N=2
  • M是每行中的数字(除以逗号)(在上面的例子中:M=10

我的目标是类似的。

我想获得两个矩阵:

第一矩阵(y):这是与“x”相同的矩阵,但没有最后一列 (在上面的示例中,这与在矩阵中加载以下文件相同:

   1,2,3,4,5,6,7,8,9
   2,5,1,3,4,6,7,8,10

所以结果矩阵是N*(M-1)矩阵(N=2M=10)==> 2行,9列

   |1 2 3 4 5 6 7 8 9 |
   |2 5 1 3 4 6 7 8 10|

第二矩阵:这是剩余的列(或更简单:N * 1矩阵,我们有最后一列的每个元素的行

在上面的例子中,矩阵将是:

|100|
|200|

最简单的方法是什么? (我是MATLAB初学者)。

提前感谢您的任何提示!

1 个答案:

答案 0 :(得分:0)

最简单的方法是在加载

后手动拆分变量FILE
y=FILE(:,1:end-1);
x=FILE(:,end);

如果您的数据文件很大并且您担心内存不足,则可以使用csvread

导入文件
 y=csvread('file.csv',0,0,[0 0 n-1 m-2] # reads the first m-1 columns and n rows
 x=csvread('file.csv',0,m-1) %# reads the mth column

但您需要先知道行数和列数。