How to split .mat data into different variables?
4 次查看(过去 30 天)
显示 更早的评论
I have .mat file in workspace which is 5120x1 dimention. I want to split that into (1024x1), (2048x1), (3072x1), (4096x1) and (5120x1) in 5 different varibales.
Is it possible with mat2cell function?
1 个评论
采纳的回答
Rik
2021-4-14
You can't have a file in your workspace, only variables (and objects if you don't count those as variables).
There are some guesses involved in what you want. Below is my best guess.
data=rand(5120,1);%generate some random data
c=num2cell(1024:1024:5120);
for n=1:numel(c)
c{n}=data(1:c{n});
end
c
You shouldn't want to put it in seperately named variables, as that will prevent you from using indexing to get to these results. However, if you insist, you can use the deal function to split the cell.
[foo,bar,foobar,f00,barr]=deal(c{:});
foo
8 个评论
Rik
2021-4-14
for n=1:numel(c)
data=c{n};
filename=sprintf('data_part_%02d.mat',n);
save(filename,'data')
end
This will write the 50 mat files you appear to want.
You still haven't explained how the input to your later function works. We might be able to suggest improvements.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!