Importing data from a file in a specific way
2 ビュー (過去 30 日間)
古いコメントを表示
I have a file with 3 columns of data.
Here is just a sample of what the data looks like (there are many more rows):
265.54555556 1.09773e-46 1.04772e-23
265.54611111 3.60808e-47 6.00673e-24
265.54666667 1.25291e-46 1.11934e-23
I want to read this into Matlab (with the numbers formatted with the same precision) and be able to work with specific columns. This is what I have. I'm not sure what is going wrong or if I even am reading in the numbers properly for their values.
fileID = fopen(file,'r');
formatSpec='%f %12.5e %12.5e';
sizeA = [Inf 3];
A = fscan(fileID,formatSpec,sizeA);
disp(A);
Additionally, once I have this working, how would I select a specific column?
Thanks!
3 件のコメント
採用された回答
Walter Roberson
2019 年 3 月 17 日
fileID = fopen(file, 'r');
formatSPec = '%f %f %f';
sizeA = [3 Inf]; %notice not [Inf 3]
A = fscanf(fileID, formatSpec, sizeA) .'; %notice transpose
fclose(fileID);
Or
A = cell2mat( textscan( fileread(file), '%f %f %f') );
And afterwards, A(:,2) would be the second column.
0 件のコメント
その他の回答 (1 件)
Guillaume
2019 年 3 月 17 日
The numbers in your text file have less precision than matlab uses. So, the simplest thing is to load them with csvread (or dlmread):
data = csvread(file);
Note that the precision with which matlab displays the numbers is completely different to the precision at which they're stored. Use format to change the display precision.
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!