Filter löschen
Filter löschen

How to split .mat data into different variables?

4 Ansichten (letzte 30 Tage)
Faheem Ur Rehman
Faheem Ur Rehman am 14 Apr. 2021
Kommentiert: Faheem Ur Rehman am 14 Apr. 2021
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 Kommentar
madhan ravi
madhan ravi am 14 Apr. 2021
You haven’t told us what classes they are and haven’t shared the file either.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Rik
Rik am 14 Apr. 2021
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
c = 1×5 cell array
{1024×1 double} {2048×1 double} {3072×1 double} {4096×1 double} {5120×1 double}
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
foo = 1024×1
0.5291 0.7418 0.5861 0.9820 0.9140 0.5865 0.2450 0.8748 0.7799 0.4680
  8 Kommentare
Rik
Rik am 14 Apr. 2021
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.
Faheem Ur Rehman
Faheem Ur Rehman am 14 Apr. 2021
The earlier code you give me is giviing output of (1024,1) 5 times but i need (0:1024),(1025:2048)... like that.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Get Started with MATLAB finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by