Assigning a variable according to file name..
Show older comments
I want the variable to be changed according to the file name.. Like;
Simulation File 1 Track 2
Simulation File 1 Track 4
Simulation File 1 Track 6
.
.
.
I want those track values assigned in a formula and get the value as the loop continues taking the track value like 2-4-6. Thank you all
3 Comments
Stephen23
on 12 Oct 2020
"I want the variable to be changed according to the file name.."
That would be about the worst approach to importing data.
Putting meta-data into variable names is a sign that you are doing something wrong.
Meta-data is data and belongs in variables, not forced into variable names. Badly designed data (with meta-data in the variable names) makes accessing the data slow, complex, inefficient, obfuscated, buggy, and difficult to debug:
The MATLAB documentation shows examples which use simple and efficient indexing to store imported file data:
Is there a particular reason why you cannot use simple, neat, efficient indexing and a cell array? (or a table, struct, etc)
FG
on 12 Oct 2020
FG
on 13 Oct 2020
Answers (2)
KSSV
on 12 Oct 2020
You need not to change the variable as based on filename..you can initialize an array/ matrix and save the variables into this.
Option 1: If size is always same
n = 10 ; % number of files
iwant = zeros(3,3,n) ; %
for i = 1:n
iwant(:,:,i) = rand(3) ; % save data here
end
Otion 2: If size varies
n = 10 ;
iwant = cell(n,1) ;
for i = 1:n
m = randperm(100,1) ;
iwant{i} = rand(m) ;
end
Sudhakar Shinde
on 12 Oct 2020
Example:
Track = 2;
File = 2;
Filename = {};
for j=1:(File)
for i = 1:(Track)
Filename{end+1} = ['SimulationFile' num2str(j) , ' Track' num2str(i)];
end
end

Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!