how to call the vector from the work space

5 次查看(过去 30 天)
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 个评论
Walter Roberson
Walter Roberson 2019-8-25
"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.
Sun Heat
Sun Heat 2019-8-25
files is on the workspace named M1,M2,M3,M4.......upto...M16.....i have to call it according to 'data' vector.

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2019-8-25
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

更多回答(0 个)

标签

Community Treasure Hunt

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

Start Hunting!

Translated by