How to import multiple text files from multiple folders and take maximum from each text file

3 ビュー (過去 30 日間)
These are the main folders
And each folders contains these txt files, I need to import AllMaxDrift from each pga
  3 件のコメント
Stephen23
Stephen23 2022 年 5 月 30 日
@Nazanin Farsi: please upload a sample AllMaxDrift data file by clicking the paperclip button.

サインインしてコメントする。

回答 (5 件)

Davide Masiello
Davide Masiello 2022 年 5 月 29 日
clear,clc
n = 0.1:0.1:1.3;
for k = 1:length(n)
filename = [num2str(n(k)),'pga/AllMaxDrift.out'];
data = readmatrix(filename);
max_value(k) = max(data);
end
Something like this should work, although it strictly depends on the way the data inside the .out files are structured.
  3 件のコメント
Davide Masiello
Davide Masiello 2022 年 5 月 30 日
Could you please attach one of your AllMaxDrift.out files?
Walter Roberson
Walter Roberson 2022 年 5 月 30 日
readmatrix() did not exist in R2013.

サインインしてコメントする。


Nazanin Farsi
Nazanin Farsi 2022 年 5 月 30 日
  5 件のコメント
Walter Roberson
Walter Roberson 2022 年 5 月 30 日
Yes, load() should be able to handle those files.

サインインしてコメントする。


Walter Roberson
Walter Roberson 2022 年 5 月 30 日
I cannot be sure without a file to test with, but I suspect
n = 0.1:0.1:1.3;
for k = 1:length(n)
filename = [num2str(n(k)),'pga/AllMaxDrift.out'];
data = load(filename, '-ascii');
max_value(k) = max(data);
end
  3 件のコメント
Walter Roberson
Walter Roberson 2022 年 5 月 30 日
You do not need to open the files in MATLAB: that code will open the files for you.
You can paste that code into the command line if you want. Or you can store it into a .m file and execute the .m file (which is what I would recommend.)

サインインしてコメントする。


Davide Masiello
Davide Masiello 2022 年 5 月 30 日
編集済み: Davide Masiello 2022 年 5 月 31 日
Hey @Nazanin Farsi, based on your replies, maybe the following code will work.
n1 = 1:22;
n2 = 0.1:0.1:1.3;
max_value = zeros(length(n1),length(n2));
for row = 1:length(n1)
for col = 1:length(n2)
filename = ['R',num2str(n1(row),'%i'),'/data/',num2str(n2(col),'%.1f'),'pga/AllMaxDrift.out'];
data = importdata(filename);
max_value(row,col) = data(3,15);
end
end
This is based on the email you sent me saying you need the element in the 3rd row and 15th column of every file.
Please note that the max values are now stored in a matrix.
  22 件のコメント
Nazanin Farsi
Nazanin Farsi 2022 年 6 月 1 日
It finally worked!!! Thank you very much!!
Davide Masiello
Davide Masiello 2022 年 6 月 3 日
@Nazanin Farsi my pleasure. If it worked, it is worth accepting the answer for future reference.

サインインしてコメントする。


Nazanin Farsi
Nazanin Farsi 2022 年 5 月 31 日

Sure. The Matrix which shows maximums, shows them to row 10, instead of 22 records. It shows zero

カテゴリ

Help Center および File ExchangeStartup and Shutdown についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by