Plotting multiple text files columns in the same graph
8 ビュー (過去 30 日間)
古いコメントを表示
Hi guys, I have about 25 files consisting of 300 rows and 3 columns.
I'd like to plot the first column of each file in the same graph. Is it possible?
Thanks in advance !
3 件のコメント
Stephen23
2016 年 3 月 7 日
@Gabriel Maya: don't use cd to switch between files: this is slow and buggy. It is much more faster and more reliable to pass full/relative filepaths to your file handling functions, exactly as Walter Roberson shows in their answer. Also you should avoid using eval for such trivial code, which is also slow and buggy way to program.
採用された回答
Walter Roberson
2016 年 3 月 7 日
workDir = 'C:\Users\gabri\Desktop\Nova_pasta\Arquivos_Saida_Imex';
delimiter = '\t';
startRow = 6;
%your description says three columns, your code says four, your previous format implied their might be more
formatSpec = '%f%f%f%f';
for i = 1:25
this_subdir = sprintf('%d', i);
filename = fullfile( workDir, this_subdir, 'arqanepi.rwo');
%%Open the text file.
fileID = fopen(filename, 'rt');
dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter, 'HeaderLines', startRow-1, 'ReturnOnError', false);
%%Close the text file.
fclose(fileID);
%%Allocate imported array to column variable names
days(:,i) = dataArray{:, 1};
Oil(:,i) = dataArray{:, 2};
Gas(:,i) = dataArray{:, 3};
Water(:,i)= dataArray{:, 4};
end
plot(days(:,1), Oil)
2 件のコメント
Ced
2016 年 3 月 7 日
Did that answer your question? Otherwise, attach one of your files.
PS: If you want to have a legend for all files without having to type it up, you could do something like
N_files = 25;
leg_str = cellfun(@(x)sprintf('dataset %i',x),num2cell(1:N_files),'UniformOutput',0);
legend(leg_str)
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で String Parsing についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!