MATLAB Answers

RAVI
0

how to call the vector from the work space

Asked by RAVI
on 25 Aug 2019 at 6:38
Latest activity Commented on by RAVI
on 26 Aug 2019 at 10:11
suppose, data = [15 2 7 16 16]; and there are 16 different files in the workspace how to call it according to the 'data' vector in bunch of five(as sequence shown in data vector)

  2 Comments

"and there are 16 different files in the workspace"
Please expand on that. Files can be on disk, but only variables can be in a workspace.
RAVI
on 25 Aug 2019 at 6:49
files is on the workspace named M1,M2,M3,M4.......upto...M16.....i have to call it according to 'data' vector.

Sign in to comment.

Tags

1 Answer

Answer by Walter Roberson
on 25 Aug 2019 at 7:01
 Accepted Answer

MS = {M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, M13, M14, M15, M16};
MS(data)
The result will be a 1 x 5 cell array that you would typically use {} indexing to access the contents of.
This code does not assume that the M variables are the same size or are the same data type.
In the case that the M variables are the same size and are a numeric data type, then there are other possibilities, such as
nd = ndims(M1);
MS = cat(nd+1, M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, M13, M14, M15, M16);
idx = [repmat({':'}, 1, nd), {data}];
MS(idx{:})
This would in this special case give you a numeric array that is one dimension higher than your original arrays, with the extra dimension corresponding to the entries in data. For example if your M variables are all 1024 x 768 x 3 RGB images, then MS would be 1024 x 768 x 3 x 16 and the indexed version would be 1024 x 768 x 3 x 5

  1 Comment

RAVI
on 26 Aug 2019 at 10:11
thanks a lot....it's really helps....god bless you

Sign in to comment.