【问题标题】:How to loading two parts of the same file to two different matrixes? (matlab)如何将同一文件的两个部分加载到两个不同的矩阵? (matlab)
【发布时间】:2012-06-06 05:47:43
【问题描述】:

我有一个文件 (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=2 , M=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 初学者)。

提前感谢您的任何提示!

【问题讨论】:

    标签: matlab file-io matrix


    【解决方案1】:

    最简单的方法是在加载后手动拆分变量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
    

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

    【讨论】:

    • 感谢您的回答。它可以工作,但有一个问题:在 x 中只加载了 m 列(如预期的那样),但在 y 中只加载了 m-1 列(我想加载从 1 到 m-1 的所有列)。我尝试了两种方法
    • @dragonmnl:我在第一个解决方案中输入错误。 y=... 应该是 y=FILE(:,1:end-1)
    猜你喜欢
    • 1970-01-01
    • 2018-04-28
    • 2014-02-12
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多