How to save specific variable names

7 次查看(过去 30 天)
Hello!
I have a large workspace and i want to save workspace variables that includes specific characters and letters. For example i want to save multiple variables that contains "T22P50" in their name. For instance, I got the variable names "Pressure_T22P50", "Position_T22P50" etc and i want to save these into a .mat file. Since these variables changes for different tests (T22P50, T30P50 etc), is there a way that the save function can search in the workspace for variables containing the specific characters, instead of manually changing them each time?
I hope the question is clear, thanks in advance!
  1 个评论
Stephen23
Stephen23 2017-4-27
编辑:Stephen23 2017-4-27
Note that your code would be much simpler, faster, and more reliable if you did not put meta-data into variable names:
Better code (simpler, faster, more reliable, easier to read,...) would simply use indexing or fieldnames instead of putting meta-data into variable names. Then your question would simply require saving one variable, and would not rely on ugly hack code.

请先登录,再进行评论。

采纳的回答

KL
KL 2017-4-27
编辑:KL 2017-4-27
workspaceVars = who;
findVars = strfind(workspaceVars, 'P250');
indexVars = find(not(cellfun('isempty', findVars)));
Now you can use workspaceVars and indexVars along with save. For example,
save('name.mat',workspaceVars{indexVars(1)})
  5 个评论
KL
KL 2017-4-27
Intuitive idea is to define that as a variable and just change it just once at the top. If you have all the possible names in an array, even better.
abj9
abj9 2017-4-27
Thank you, KL! Your answers helped me a lot :)

请先登录,再进行评论。

更多回答(1 个)

Fangjun Jiang
Fangjun Jiang 2017-4-27
Vars=who('*_T22P50');
save('MatFile',Vars{:});

类别

Help CenterFile Exchange 中查找有关 Performance and Memory 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by