i am working on a serial data and need to convert it from serial to parallel data.i have a matrix of 7500 x 1, and i need to divide it into 10 individual matrices of 750 x 1.
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
zafran khan
am 2 Sep. 2017
Kommentiert: Image Analyst
am 2 Sep. 2017
i can use reshape and vec2mat.but it convert it into one matrix of 750 x 10
2 Kommentare
Andrei Bobrov
am 2 Sep. 2017
and well,
A - your array [7500 x 1], M = reshape(A,[],10), then first your "individual matrix" = M(:,1) and etc.
Akzeptierte Antwort
Stephen23
am 2 Sep. 2017
Bearbeitet: Stephen23
am 2 Sep. 2017
C = mat2cell(V,750*ones(10,1),1)
C = num2cell(reshape(V,[],10),1)
Do NOT try to automatically create matrices in the workspace: read this to know why:
3 Kommentare
Stephen23
am 2 Sep. 2017
Bearbeitet: Stephen23
am 2 Sep. 2017
"but this does not suffice my question."
Really? Why not?
"i need to plit a 7500 x1 matix into 10 small matrix of 750 x 1."
Yes, that is what my code does.
"elements of splitted matrix should be of the same as in the parent matrix"
Yes, that is what my code does.
Did you even try it?
Lets have look:
>> V = rand(7500,1);
>> C = num2cell(reshape(V,[],10),1);
>> size(C) % show the number of output matrices = 10
ans =
1 10
>> size(C{1}) % show the size of the first output vector
ans =
750 1
Or if you want to see the size of every vector in C:
>> cell2mat(cellfun(@size,C(:),'uni',0))
ans =
750 1
750 1
750 1
750 1
750 1
750 1
750 1
750 1
750 1
750 1
So my code created ten 750x1 output vectors, just as you requested. Now lets have a look at the elements of the first vector:
>> V(1:8) % e.g. the first 8 elements of the original data
ans =
0.81472
0.90579
0.12699
0.91338
0.63236
0.09754
0.2785
0.54688
>> C{1}(1:8) % the first 8 elements of the first output vector
ans =
0.81472
0.90579
0.12699
0.91338
0.63236
0.09754
0.2785
0.54688
>>
Note that the elements are exactly the same, exactly as you require.
So there it is: my answer split your 7500x1 vector into ten vectors of size 750x1, with exactly the same elements as the original data vector. I have no idea why you think it does not work: can you please explain why you think it does not work?
Image Analyst
am 2 Sep. 2017
In an above comment, he said "i am looking for some for loops" so I'm guessing that a for loop is what was specified in a homework problem - he just didn't tag it as homework.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!