Trying to input a number of files from a matrix

1 view (last 30 days)
I'm not sure why this isn't working but I'm just trying to load multiple files from a folder and it's not reading my variables in the matrix as a string. I tried converting to chars but I obviously need more than 1 char based on the example below.
subName = ["10", "12"];
InputFolder = 'F:\Graph Data\';
for i = 1:(size(subName)) %through the size of the number of input files
load([InputFolder,'S',(subName(i)),'_data']);
end
I'd appreciate any help

Accepted Answer

Walter Roberson
Walter Roberson on 16 Sep 2020
>> subName = ["10", "12"]; size(subName), 1:size(subName)
ans =
1 2
ans =
1
size() with a single parameter always returns a vector with at least two elements. When you give the colon operator a non-scalar value (such as a vector of length 2), then it ignores everything except the first value... which in this case is 1, the number of rows in subName.
load([InputFolder,'S',(subName(i)),'_data']);
You should probably be using something like
load( fullfile(InputFolder, "S" + subName(i) + "_data.mat") )
and better yet would be to assign the result of load() to a variable, instead of "poofing" variables into existence.
  2 Comments
Saar Peles
Saar Peles on 17 Sep 2020
Thanks I appreciate the help. One thing though, what would I use in place of size()?

Sign in to comment.

More Answers (0)

Tags

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!