when i am saving workspce of function , it's not containing all variables.

4 views (last 30 days)
when i am saving workspce of function , it's not containing all variables. and when i run through command window it showing all data for the same data.
why it's showing the difference between workspace?
  3 Comments
Sonali Patil
Sonali Patil on 13 Nov 2020
Thanks for the reply.but i am using some variables in function and exporting workspace to .m file and other side using same execution through command window and exporting into another .m file . when i am comparing both the files , some data missing in .m file exported from function.
is any command available to merge the base and function workspace?
Rik
Rik on 13 Nov 2020
Your comment is very confusing. Data is not saved in an m file, but in a mat file.
Why would you want to merge the base and function workspace? If you want them to be the same you can use a script. The whole point of functions is to hide the internals from the caller. What do you want to achieve?

Sign in to comment.

Accepted Answer

Sudhakar Shinde
Sudhakar Shinde on 13 Nov 2020
There may not be direct function available to merge two workspace data directly. If you would like to save base workspace and function workspace variables to '.m' files. I feel below can be a workaround to do it.
  1. Save base workspace to File1.m file
  2. Save function workspace to File2.m file
Then use function to merge two .m files:
function Merge2Mfiles(file1,file2)
run(file1);
run(file2);
Data = whos;
Data = Data(~contains({Data.name},{'file2','file1'}));
matlab.io.saveVariablesToScript('Out.m', {Data.name});
end
  1 Comment
Walter Roberson
Walter Roberson on 13 Nov 2020
save base workspace to mat file. save function workspace to same mat file with -append . Later load mat file.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!