我想使用以下代码导入大型数据集(多列)。我希望将所有内容都放在一列而不是一行(多列)。所以我做了转置操作,但它仍然没有适当的工作。
clc
clear all
close all
dataX_Real = fopen('dataX_Real_in.txt');dataX_Real=dataX_Real';
我将非常感谢您的支持和建议。谢谢 可以使用以下link找到示例文件。
答案 0 :(得分:1)
使用fopen
时,您所做的只是打开文件。您未读取数据。从fopen
返回的内容实际上是一个文件指针,可让您访问该文件的内容。它实际上并没有读取内容本身。您需要使用fread
或fscanf
之类的内容来读取文本数据中的内容。
但是,我建议您改为使用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