如何导入大型数据集并将其放在单个列中

时间:2015-01-10 07:42:03

标签: matlab import multiple-columns

我想使用以下代码导入大型数据集(多列)。我希望将所有内容都放在一列而不是一行(多列)。所以我做了转置操作,但它仍然没有适当的工作。

    clc
    clear all 
    close all 
    dataX_Real = fopen('dataX_Real_in.txt');dataX_Real=dataX_Real';

我将非常感谢您的支持和建议。谢谢 可以使用以下link找到示例文件。

1 个答案:

答案 0 :(得分:1)

使用fopen时,您所做的只是打开文件。您未读取数据。从fopen返回的内容实际上是一个文件指针,可让您访问该文件的内容。它实际上并没有读取内容本身。您需要使用freadfscanf之类的内容来读取文本数据中的内容。

但是,我建议您改为使用dlmread,因为这不需要fopen调用来打开您的文件。这将打开文件,读取内容并将其存储到一个函数调用中的变量中:

dataX_Real = dlmread('dataX_Real_in.txt');

通过执行上述操作并使用您的文本文件,我获得了44825个元素。以下是数据的前10个条目:

>> format long;
>> dataX_Real(1:10)

ans =

  Columns 1 through 4

  -0.307224970000000   0.135961950000000  -1.072544100000000   0.114566020000000

  Columns 5 through 8

   0.499754310000000  -0.340369000000000   0.470609910000000   1.107567700000000

  Columns 9 through 10

  -0.295783020000000  -0.089266816000000

似乎与我们在您的文本文件中看到的内容相匹配!但是,你说你想把它作为一个列。默认情况下,这会以行为单位读取值,因此您可以在此处转置:

dataX_Real = dataX_Real.';

显示前10个元素,我们得到:

>> dataX_Real = dataX_Real.';
>> dataX_Real(1:10)

ans =

  -0.307224970000000
   0.135961950000000
  -1.072544100000000
   0.114566020000000
   0.499754310000000
  -0.340369000000000
   0.470609910000000
   1.107567700000000
  -0.295783020000000
  -0.089266816000000