Read in matrix for multiple steps while changing string

10 Ansichten (letzte 30 Tage)
Hi, I want to read in multiple temperature files at different time steps. For instance I have array:
time = [0, 10, 20];
And I need to read in:
temp0 = "temperature_0.txt"
temp1 = "temperature_10.txt"
temp2 = "temperature_20.txt"
So I can compile them all into:
temp = [temp0;temp1;temp2]
How can I handle changing the string names "temp0" and "temperature_0.txt" based on the value in time? I know I will have a for loop such as follows, but I am unsure of how to make the variable input into the name as a string
for k = 1:length(time)
...
end

Akzeptierte Antwort

Steven Lord
Steven Lord am 24 Mai 2023
time = [0, 10, 20];
files = "temperature_" + time + ".txt"
files = 1×3 string array
"temperature_0.txt" "temperature_10.txt" "temperature_20.txt"
Now you could iterate over the elements of the files string array.
  3 Kommentare
Alexandra Vest
Alexandra Vest am 24 Mai 2023
A follow-up question, if I have a bunch of file, let's say "log_0.txt", "log_10.txt" "log_20.txt" and I wanted to read in the numbers on the latter end of the file name to create the array time=[0,10,20] is there a way to do that? I don't need to read in those files, just take the number following log_. Thank you!
Steven Lord
Steven Lord am 24 Mai 2023
If the only digits in the names are in the numbers you want to extract, use digitsPattern to extract that data from the string array.
time = [0, 10, 20];
files = "temperature_" + time + ".txt"
files = 1×3 string array
"temperature_0.txt" "temperature_10.txt" "temperature_20.txt"
numbersAsText = extract(files, digitsPattern)
numbersAsText = 1×3 string array
"0" "10" "20"
numbers = double(numbersAsText)
numbers = 1×3
0 10 20
isequal(time, numbers)
ans = logical
1

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by