How can I save different variables in separated files using cellfun/arrayfun?
13 次查看(过去 30 天)
显示 更早的评论
I would like to save different variables (included in the same cell) using cellfun.
As an example, this is the cell containing the file names for the 3 files that will be created:
fnames={'var1.mat';'var2.mat';'var3.mat'};
And this is the cell with the variables that will be saved in the corresponding files:
vars={ones(1);2*ones(3);3*ones(3)};
As far as I understand, arrayfun could save vars{1} with the name 'var1.mat', vars{2} with the 'var2.mat', and vars{3} with 'var3.mat'. But I get the following error:
cellfun(@(x,y) save(x,y), fnames,vars)
Error using save
Argument must contain a character vector.
Error in @(x,y)save(x,y)
If I try the following code I get another error:
cellfun(@(x,y) save(x,y), fnames,'vars')
Error using cellfun
Input #3 expected to be a cell array, was char instead.
I don't really know if the syntax is not correct or what I'm trying to do is not possible.
Any ideas about it?
Many thanks!!
1 个评论
Stephen23
2017-4-19
Unfortunately this is a major "design feature" (aka mistake) in the function save. Not easy to work around, really.
采纳的回答
Jan
2017-4-19
The save command expects the data as the name of the variable. It does not accept the array to be saved directly. If you really need this, write a wrapper:
cellfun(@(x,y) savewrapper(x,y), fnames, vars)
function savewrapper(FileName, Data)
save(FileName, 'Data');
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Structures 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!